Oracleデータベースからプロシージャ/関数に関する情報を取得したいと考えています。ALL_PROCEDURES
テーブルを使用できることはわかっていますUSER_OBJECTS
が、それらは既存のプロシージャ/関数の名前についてのみ通知します。ソースを解析せずに戻り値の型と引数を取得したいと思います。それはオラクルの下で可能ですか?PostgreSQL では非常に簡単で、MySQL で実行できます (5.5 AFAIK での引数)。
1 に答える
4
ALL_ARGUMENTS
ビュー(またはUSER_ARGUMENTS
またはDBA_ARGUMENTS
)が必要なようです
SQL> create or replace function f1( p_in in varchar2,
2 p_in_out in out number )
3 return number
4 is
5 begin
6 return 1;
7 end;
8 /
Function created.
SQL> ed
Wrote file afiedt.buf
1 select argument_name, position, in_out, data_type
2 from all_arguments
3 where object_name = 'F1'
4* and package_name is null
SQL> /
ARGUMENT_N POSITION IN_OUT DATA_TYPE
---------- ---------- --------- ----------
P_IN_OUT 2 IN/OUT NUMBER
P_IN 1 IN VARCHAR2
0 OUT NUMBER
于 2011-04-18T22:18:07.097 に答える