有没有办法获得存储过程签名?
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.NUMBER
、cx_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
假设我们有一个 Oracle 过程:
procedure proc(i_value in number, o_value out varchar2) is
begin
null;
end proc;
传递给 callproc()
函数的输出值应由一种 Oracle 类型(cx_Oracle.NUMBER
、cx_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