2009-06-29 23 views
4

特定のパッケージ内にあるすべてのプロシージャおよびファンクションの名前を取得できますか。私は彼らがALL_SOURCEビューから収集することができることを理解していますが(hack-ish hack-ish)、私はより標準的な戦略を好むでしょう。あなたはまた、プライベートメソッドをしたい場合はPL/SQL:パッケージ内のプロシージャおよびファンクションの名前を取得します。

答えて

9

DBA_PROCEDURESは、情報がデータ・ディクショナリに直接アクセスすることはできません、パッケージ

SELECT owner, 
     object_name AS package_name, 
     procedure_name AS method_name 
    FROM dba_procedures 
WHERE object_type = 'PACKAGE' 

内のパブリックメソッドを持っています。その場合は、ソースを解析する必要があります(特に、パッケージのパブリックメソッドまたはプライベートメソッド内にネストされたプライベートメソッドがある場合は、かなり痛いでしょう)。

+2

+1、あなたもUSER_PROCEDURESとALL_PROCEDURESパブリックビューでは、この情報を得るでしょう –

1

以下は、特定のパッケージからすべての手続き名と関数名を返します。

SELECT procedure_name FROM user_procedures WHERE object_name='mypackagename'; 
関連する問題