43

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

toadを使用してコンパイルされたプロシージャのコードを取得できるため、全文がデータディクショナリテーブルに格納されていると思います。誰かがそれがどこにあるか知っていますか?

どうもありがとう

4

3 に答える 3

87

あなたは次のようなことをすることができます

SELECT name, line, text
  FROM dba_source
 WHERE upper(text) like upper('%<<your_phrase>>%') escape '\' 
于 2008-10-30T21:58:02.567 に答える
4

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

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

于 2008-10-31T15:09:47.190 に答える
1

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

于 2008-10-30T21:56:32.710 に答える