Oracleでプロシージャのソースを確認する方法

環境
Oracle Database 12c Enterprise Edition Release 12.2.0.1.0
SQL*Plus: Release 12.2.0.1.0

書式

Plain text
Copy to clipboard
Open code in new window
EnlighterJS 3 Syntax Highlighter
SELECT text FROM user_source
WHERE name = 'プロシージャ名'
ORDER BY line;
SELECT text FROM user_source WHERE name = 'プロシージャ名' ORDER BY line;
SELECT text FROM user_source
WHERE name = 'プロシージャ名'
ORDER BY line;

プロシージャやファンクション等のソースは、sourceデータディクショナリを検索します。
USER_SOURCE
自スキーマのストアド等を対象とします。

使用例
プロシージャ「TRG_USER_MAST_LOCK」のソースを確認します

Plain text
Copy to clipboard
Open code in new window
EnlighterJS 3 Syntax Highlighter
SELECT
TEXT
FROM
USER_SOURCE
WHERE
NAME = 'TRG_USER_MAST_LOCK'
ORDER BY
LINE;
SELECT TEXT FROM USER_SOURCE WHERE NAME = 'TRG_USER_MAST_LOCK' ORDER BY LINE;
SELECT
  TEXT 
FROM
  USER_SOURCE 
WHERE
  NAME = 'TRG_USER_MAST_LOCK' 
ORDER BY
  LINE;

実行結果

Plain text
Copy to clipboard
Open code in new window
EnlighterJS 3 Syntax Highlighter
TRIGGER "ARKUSER".TRG_USER_MAST_LOCK
AFTER INSERT
ON USER_MAST_LOCK
FOR EACH ROW
BEGIN
INSERT INTO S_USER_MAST_LOCK VALUES(
:NEW.USER_NO,
:NEW.LOCK_FLG);
END;
TRIGGER "ARKUSER".TRG_USER_MAST_LOCK AFTER INSERT ON USER_MAST_LOCK FOR EACH ROW BEGIN INSERT INTO S_USER_MAST_LOCK VALUES( :NEW.USER_NO, :NEW.LOCK_FLG); END;
TRIGGER "ARKUSER".TRG_USER_MAST_LOCK
 AFTER INSERT
    ON USER_MAST_LOCK
   FOR EACH ROW
BEGIN
    INSERT INTO S_USER_MAST_LOCK VALUES(
                :NEW.USER_NO,
                :NEW.LOCK_FLG);
    END;

 

Oracle

Posted by arkgame