質問

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

select * from v$sqltext

しかし、上のクエリを実行すると、Oracle はエラーを返します。

ORA-00942:テーブルまたはビューは存在しません00942。00000 - 「表またはビューが存在しません」 *原因:
*アクション:行のエラー:29 コラム:15

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

役に立ちましたか?

解決

ストアド プロシージャ (パッケージ内ではない) の完全なクエリ:

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 ソース
  • パッケージ本体
  • パッケージ
scroll top