HOME >> Tips >> Oracle Tips >> SQL

ストアドプロシージャのソースを取得する(ALL_SOURCE / DBA_SOURCE / USER_SOURCE)

 
文書番号:20274




Oracle ストアドプロシージャのソースを取得するSQL。

・ユーザーが持つストアドプロシージャのソースを取得する


SELECT TEXT
FROM   USER_SOURCE
WHERE  NAME = 'ストアドプロシージャ名'
ORDER BY LINE;

・他のユーザーのストアドプロシージャのソースを取得する


SELECT TEXT
FROM   DBA_OBJECTS
WHERE  OWNER = 'ユーザー名'
AND    NAME  = 'ストアドプロシージャ名'
ORDER BY LINE;

【例】ソースをきれいにテキストファイルへ出力する


SQL*Plus で実行した結果をテキストファイルに出力する」のようにして実行結果をテキストファイルに出力します。

>sqlplus -s ユーザー名/パスワード@接続文字列

set echo off
set trimspool on
set pagesize 0
set feedback off

spool c:\temp\source.txt

SELECT TEXT
FROM   USER_SOURCE
WHERE  NAME = 'ストアドプロシージャ名'
ORDER BY LINE;

spool off
ストアドプロシージャの引数を確認したいだけであれば「DESC」コマンドで確認できます。

SQL> DESC SAMPLE1

PROCEDURE SAMPLE1
 引数名                         タイプ                  In/Out Default?
 ------------------------------ ----------------------- ------ --------
 I_CODE                         VARCHAR2                IN
 I_NAME                         VARCHAR2                IN