首页 > 解决方案 > 有没有办法获得存储过程签名?

问题描述

假设我们有一个 Oracle 过程:

procedure proc(i_value in number, o_value out varchar2) is
begin 
    null;
end proc;

传递给函数的输出值callproc()应由 Oracle 类型之一(cx_Oracle.NUMBERcx_Oracle.STRING)启动。

在我们的例子中,一个名为 named 的变量将从过程out_value中接收o_value,并且在被传递之前应该像这样定义:

out_value = cur.var(cx_Oracle.STRING)

如果我们知道程序的签名就可以了。但如果不是呢?

有没有办法在调用过程之前获取过程的输出值类型?

标签: pythonoraclecx-oracle

解决方案


您将需要查询 USER_PROCEDURES 和 USER_ARGUMENTS 等“数据字典”视图。cx_Oracle 中没有内置的“描述 PL/SQL”API。


推荐阅读