如何使用Oracle.ManagedDataAccess.Client
(或Oracle.DataAccess.Client
)读取给定包中的存储过程接口(签名),以便我可以推断出所需的参数,类型/长度以及它们是否是IN
,OUT
或两者兼而有之?
示例:鉴于我正在寻找somePackage.someProc
,请以最易于使用的格式向我提供该proc的定义(而不是正文)。
答案 0 :(得分:1)
有关过程/函数参数的所有相关信息都位于元数据视图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