web-dev-qa-db-ja.com

すべてのOracleパッケージおよびプロシージャの全文検索を実行する方法はありますか?

特定のフレーズについて、すべてのプロシージャパッケージと関数を検索したいと思います。

ヒキガエルを使用してコンパイル済みプロシージャのコードを取得することが可能であるため、フルテキストが何らかのデータディクショナリテーブルに格納されていると仮定します。誰がそれがどこになるか知っていますか?

どうもありがとう

33
George Mauer

次のようなことができます

SELECT name, line, text
  FROM dba_source
 WHERE upper(text) like upper('%<<your_phrase>>%') escape '\' 
65
Justin Cave

Toadの「オブジェクト検索」ルーチンは、ALL_SOURCE(およびデータディクショナリの他の部分)を調べます。もちろん、これは接続ユーザーが見ることができるオブジェクトに制限されます。 DBAバージョンにアクセスできる場合、素晴らしい。そうでない場合、すべてを検索することはありません。

また、Oracle 7に戻った場合、またはデータベースがOracle 7から8iまたは9i(10または11について不明)に移行された場合、トリガーソースはuser_sourceビューまたはall_sourceビューに表示されない場合があります。チェックするのがベスト。私が見つけた最も簡単な方法は、実際の変更を行うことです(たとえば、スペースを追加して)、トリガーを再コンパイルします。

4
Jim Hudson

PL/SQLを使用するということですか?または単にTOADを使用していますか? 「オブジェクトの検索」(またはそのようなもの)機能を使用して、プロシージャ、テーブルなどのすべてのオブジェクトを手動で検索できることを知っています。

1
Mark