有没有办法获得存储过程签名?

Is there a way to get a stored procedure signature?

假设我们有一个 Oracle 过程:

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

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

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

out_value = cur.var(cx_Oracle.STRING)

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

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

您将需要查询 'data dictionary' 视图,例如 USER_PROCEDURES 和 USER_ARGUMENTS。 cx_Oracle.

中没有built-in'describe PL/SQL'API