【发布时间】:2011-12-11 23:15:33
【问题描述】:
在 C# 中,如果您使用 params 关键字设置方法参数,则该参数将接受不定数量的参数。调用该方法时,您可以为该参数发送一个逗号分隔的参数列表。
PL/SQL 是否具有方法参数的等效功能?
谢谢!
安德鲁·L
【问题讨论】:
在 C# 中,如果您使用 params 关键字设置方法参数,则该参数将接受不定数量的参数。调用该方法时,您可以为该参数发送一个逗号分隔的参数列表。
PL/SQL 是否具有方法参数的等效功能?
谢谢!
安德鲁·L
【问题讨论】:
没有。 params 关键字是由编译器转换为数组的语法糖。甲骨文显然不那么“甜蜜”。最接近的方法是创建一个接受可变大小数组 (Varray) 的过程。
【讨论】:
您可以使用临时表,我想这是最常用的选项,因为它可能适用于大多数 RDBMS。
不过,在 SQL Server 2008 中,您甚至可以传递表参数,例如:
CREATE TYPE my_table_type AS TABLE(a int NOT NULL,
b int NOT NULL)
CREATE PROCEDURE [dbo].[test]
(
@model my_table_type readonly
)
AS
BEGIN
END
【讨论】: