3

私は TOAD を使用して PL/SQL 開発を行っています。TOAD でプロシージャ名を入力して f4 キーを押すと、このプロシージャのソース コードが表示されます。TOAD は v$sqltext ビューからソース コードを取得すると思います。私の考えを確認するために、クエリを書きました:

select * from v$sqltext

しかし、上のクエリを実行すると、Oracle からエラーが表示されます。

ORA-00942: 表またはビューが存在しません 00942. 00000 - 「表またはビューが存在しません」 *原因:
*アクション: 行: 29 列: 15 でエラーが発生しました

したがって、TOAD は v$sqltext ビューではなく、他の場所からプロシージャのソースを取得すると思います。誰でもこれについて教えてもらえますか?まことにありがとうございます。

4

3 に答える 3

8

ストアドプロシージャの完全なクエリ(パッケージには含まれていません):

select text
from   all_source
where  owner = 'MYSCHEMA'
and    type = 'PROCEDURE'
and    name = 'MY_PROCEDURE'
order by line;

ユーザーMYSCHEMAとして接続している場合は、USER_SOURCEを使用できます。

select text
from   user_source
where  type = 'PROCEDURE'
and    name = 'MY_PROCEDURE'
order by line;

TYPEの他の値は次のとおりです。

  • タイプボディ
  • 働き
  • 引き金
  • タイプ
  • JAVAソース
  • パッケージボディ
  • パッケージ
于 2009-11-18T10:09:42.780 に答える
2

select * from all_source

ALL_SOURCEおよびV$SQLTEXTのデータベース・リファレンスを参照してください。

于 2009-11-18T09:17:52.150 に答える
1

DBA* テーブルで特権を選択している場合は、チェックアウトしてくださいselect * from dba_source。このテーブルには、ソース コード全体が含まれます。

于 2009-11-18T09:41:17.257 に答える