PL/SQLプロシージャのパラメータ定義を取得する必要があります。PL/SQLプロシージャ・スキーマの取得
MS SQLでは、Information_schema.Parameters
を使用します。オラクルの対応するものがあれば、それは何ですか?
PL/SQLプロシージャのパラメータ定義を取得する必要があります。PL/SQLプロシージャ・スキーマの取得
MS SQLでは、Information_schema.Parameters
を使用します。オラクルの対応するものがあれば、それは何ですか?
データ・ディクショナリ表ALL_ARGUMENTSから、同じデータのほとんど(すべてではないにしても)にOracleにアクセスできます。 ALL_ARGUMENTS
には、実行権限があるすべてのプロシージャの引数が表示されます。 USER_ARGUMENTS
はあなたが所有するすべての手続きの引数を表示します。 DBA_ARGUMENTS
は、データベースに存在するすべてのプロシージャの引数を表示しますが、DBA_*
ビューにアクセスするには追加の権限が必要です。
ストアドプロシージャのパラメータに関する情報のほとんどはALL_ARGUMENTSで見つけることができると同様にUSER_ARGUMENTS
とDBA_ARGUMENTS
。ここ..
の出力を与えるUSER_ARGUMENTS
CREATE OR REPLACE PROCEDURE my_proc
(p_number IN NUMBER,
p_varchar IN OUT VARCHAR2 ,
p_clob IN OUT NOCOPY CLOB,
p_timestamp OUT TIMESTAMP
)
IS
BEGIN
NULL;
END;
/
CREATE OR REPLACE FUNCTION my_func
(p_date IN DATE,
p_varchar IN VARCHAR2)
RETURN BOOLEAN
IS
BEGIN
return TRUE;
END;
/
SELECT package_name,object_name, argument_name, IN_OUT , pls_type ,position
FROM user_arguments
WHERE object_name IN ('MY_PROC','MY_FUNC')
ORDER BY package_name, object_name, position;
を使用して迅速なサンプルがあります
Procedure created.
Function created.
PACKAGE_NAME OBJECT_NAME ARGUMENT_NAME IN_OUT PLS_TYPE POSITION
--------------------- ------------------------------ ------------------------- --------- -------------------- ----------
MY_FUNC OUT BOOLEAN 0
MY_FUNC P_DATE IN DATE 1
MY_FUNC P_VARCHAR IN VARCHAR2 2
MY_PROC P_NUMBER IN NUMBER 1
MY_PROC P_VARCHAR IN/OUT VARCHAR2 2
MY_PROC P_CLOB IN/OUT CLOB 3
MY_PROC P_TIMESTAMP OUT TIMESTAMP 4
7 rows selected.
ご覧のとおり、最も有益な情報がありますが、表示されませんNOCOPYヒント。 nullのARGUMENT_NAMEは、関数の戻り値です
ALL_およびDBA_バージョンにはOWNER列が追加されます。
ストアドプロシージャ自体に関する追加情報は、探している詳細のレベルによってはALL_PROCEDURES,ALL_PLSQL_OBJECT_SETTINGSおよびALL_OBJECTSにあります。