Pro*C 将动态数组传递给 PL/SQL 过程
我想从 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 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(2)
它看起来像 FOR 子句你是这里的朋友吗?
It looks like the FOR clause is you friend here.
答案在这里:Oracle 文档< /a>.这是 ARRAYLEN 参数。
The answer is here: Oracle Docs. It's the ARRAYLEN parameter.