PL/SQL 是否具有与 C# 中的数组参数等效的功能?

发布于 2024-12-10 22:00:33 字数 147 浏览 1 评论 0原文

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

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

谢谢!

安德鲁·L

In C#, if you set up a method parameter using the params keyword, that parameter will take in an indefinite number of arguments. When calling the method, you can then send a comma-separated list of arguments for that parameter.

Does PL/SQL have an equivalent feature for method parameters?

Thanks!

Andrew L

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

挽清梦 2024-12-17 22:00:33

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

No. The params keyword is syntactic sugar that is converted to an array by the compiler. Oracle apparently is less 'sweet'. The closest you can get is create a procedure that accepts a variable-size array (Varray).

记忆消瘦 2024-12-17 22:00:33

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

You can use a temporary table, I suppose this is the most common option because it probably works in most RDBMS.

In SQL Server 2008 though, you can even pass a table parameter, like:

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
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文