【发布时间】:2021-08-17 00:44:42
【问题描述】:
各种 Oracle 解决方案都涉及带有 dbms_output 包的 PL/SQL sn-ps,尤其是 dbms_output.put_line()。
这些使用 sqlplus 解释器,但我们的一些代码使用 C API(oci.h、ociapr.h 和朋友)。
有没有办法通过这些函数获取 DBMS 缓冲区的内容?
【问题讨论】:
-
你看过这个oracle示例代码吗? Programmer's Guide to the Oracle7 Server Call Interface
-
Oracle 12.2 调用接口的 Oracle 文档位于 docs.oracle.com/en/database/oracle/oracle-database/12.2/lnoci/… -- tl;dr 所以不确定您是否可以调用
DBMS_OUTPUT中的过程。 DBMS_OUTPUT 文档:docs.oracle.com/en/database/oracle/oracle-database/12.2/arpls/… -
是的,@ryyker,示例代码几乎是 API 唯一可用的文档。不幸的是,它没有提到
dbms_output。我知道,包中的程序在服务器内部的一些缓冲区上运行——我的问题是,客户端如何访问它们。sqlplus和各种 Oracle 客户端 GUI 客户端都这样做,但它们的源没有打开......我可以调用 SQL 语句,但获得结果的唯一已知方法是处理 数据集(当语句是select ...时)。
标签: c oracle plsql oracle-call-interface dbms-output