Pro*C 将动态数组传递给 PL/SQL 过程

发布于 2024-08-06 22:42:52 字数 536 浏览 1 评论 0原文

我想从 Pro*C 调用一个 PL/SQL 存储过程,它接受一个数组参数(整数表)。 Oracle 站点上的所有文档都假设您使用静态数组,或者至少在与查询相同的过程中定义一个静态数组。 我想将一个数组传递给 C 函数,然后可以将其发送到数据库。这里的问题是我在编译时没有大小(或者更确切地说,Pro*C 预处理器无法使用它)。 有什么方法可以设置在代码中发送到数据库的数组的长度,或者我是否必须创建一个新的静态数组并将数据复制到其中?

文档示例位于 此链接

编辑 - 我在非 Oracle 站点 Oracle 文档

I want to call a PL/SQL stored procedure from Pro*C which takes an array parameter (table of integer). All the documentation on the Oracle site assumed you are using a static array, or at least one defined in the same procedure as the query.
I want to pass an array to a C function, that can then be sent up to the database. The problem here is that I don't have the size at compile time (or rather it won't be available to the Pro*C preprocessor).
Is there any way to set the length of the array being sent up to the database in code, or do I have to make a new static array and copy my data into it?

An example of the documentation is at this link

Edit - I found the answer at a non-Oracle site Oracle Docs

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

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

发布评论

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

评论(2

风渺 2024-08-13 22:42:52

它看起来像 FOR 子句你是这里的朋友吗?

It looks like the FOR clause is you friend here.

苦行僧 2024-08-13 22:42:52

The answer is here: Oracle Docs. It's the ARRAYLEN parameter.

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