如何使用Oracle.ManagedDataAccess.Client
(或Oracle.DataAccess.Client
)读取给定包中的存储过程接口(签名),以便推断所需参数、它们的类型/长度,以及它们是IN
、OUT
还是两者都是?
示例:考虑到我正在寻找somePackage.someProc
,请以最容易使用的格式返回该过程的定义(而不是主体)。
有关过程/函数参数的所有相关信息都位于元数据视图ALL_ARGUMENTS
中。
例如:
SQL> CREATE PACKAGE somePackage AS
2 PROCEDURE someProc (p_arg1 NUMBER, p_arg2 OUT VARCHAR2);
3 END;
4 /
Package created
SQL> SELECT package_name, object_name, position, argument_name, data_type, in_out
2 FROM user_arguments
3 WHERE package_name='SOMEPACKAGE';
PACKAGE_NAME OBJECT_NAME POSITION ARGUMENT_NAME DATA_TYPE IN_OUT
------------- ------------ --------- -------------- ---------- ---------
SOMEPACKAGE SOMEPROC 1 P_ARG1 NUMBER IN
SOMEPACKAGE SOMEPROC 2 P_ARG2 VARCHAR2 OUT