2012-08-28 6 views
5

plsqlでパラメータの名前を取得します。例えば、パラメータ名を取得

procedure sp_example(myParam in varchar2) is 

paramName varchar2(30); 
begin 
    paramName = 'myParam'; 
end 
end procedure sp_example; 

は反射、代わりにそれをハードコーディングを使用してmyParamの名前を取得する方法が

ありますか?

答えて

6

試してみてください。

select argument_name from all_arguments where object_name = 'SP_EXAMPLE'; 

このビューはまた、あなたなどのデータ型、位置を表示したり、SQLやPL/SQLでそれを使用することができます。さまざまなメタデータビューの豊富な情報

+1

を使用。しかし残念ながら、パッケージ内のプロシージャーの名前を取得する簡単な方法はありません。 http://tkyte.blogspot.com/2009/10/httpasktomoraclecomtkytewhocalledme.html –

1

あなたがそれぞれの位置で取得したパラメータの名前を取得したい場合は、あなたが動的にプロシージャの所有者と名前を取得するには、 `OWA_UTIL.who_called_me`と` who_am_i`手順を使用することができます

select argument_name from user_arguments where object_name='SAMPLE_PROC' order by position;

関連する問題