【问题标题】:Does PL/SQL have the equivalent of array params in C#?PL/SQL 是否与 C# 中的数组参数等效?
【发布时间】:2011-12-11 23:15:33
【问题描述】:

在 C# 中,如果您使用 params 关键字设置方法参数,则该参数将接受不定数量的参数。调用该方法时,您可以为该参数发送一个逗号分隔的参数列表。

PL/SQL 是否具有方法参数的等效功能?

谢谢!

安德鲁·L

【问题讨论】:

    标签: c# plsql params


    【解决方案1】:

    没有。 params 关键字是由编译器转换为数组的语法糖。甲骨文显然不那么“甜蜜”。最接近的方法是创建一个接受可变大小数组 (Varray) 的过程。

    【讨论】:

    • 您可以在 PL/SQL 中使用三种集合类型之一:关联表(hash like)、嵌套表(set like)和 varray(C-array like)。详情请查看documentation on collection
    【解决方案2】:

    您可以使用临时表,我想这是最常用的选项,因为它可能适用于大多数 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
    

    【讨论】:

      猜你喜欢
      • 2010-12-03
      • 1970-01-01
      • 2011-01-16
      • 2014-08-06
      • 2019-05-24
      • 1970-01-01
      • 2022-01-09
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多