PROCEDURE及び、FUNCTIONの実行履歴はどのようにすれば見れるのでしょう?
SQLの実行履歴、及びバインド変数の履歴であれば、V$SQLを参照すればいいと下記のページに記載ありますが、同じような感じで、PROCEDURE、及びFUNCTIONの実行履歴を確認する方法は無いものでしょうか?
気になる質問をクリップする
クリップした質問は、後からいつでもMYページで確認できます。
またクリップした質問に回答があった際、通知やメールを受け取ることができます。
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。

回答1件
0
ベストアンサー
昔、なるべく修正に手間をかけないで、って要望だったので、DBMS_OUTPUTでログを取ったことがあります。
SQL:PKG_LOG_MONITOR
1CREATE OR REPLACE PACKAGE PKG_LOG_MONITOR 2IS 3 LOG_MONITOR_MODE VARCHAR2(3) ; -- ON or OFF -- Oracle session 内で有効な(グローバルな)変数として使用 4 5 PROCEDURE LOG_MONITOR 6 ( 7 I_PROGRAM IN VARCHAR2 -- プログラム 8 , I_LOG_MESSAGE IN VARCHAR2 -- ログメッセージ 9 ) ; 10END PKG_LOG_MONITOR ; 11/
SQL:PKG_LOG_MONITOR
1CREATE OR REPLACE PACKAGE BODY PKG_LOG_MONITOR 2IS 3 PROCEDURE LOG_MONITOR 4 ( 5 I_PROGRAM IN VARCHAR2 -- プログラム 6 , I_LOG_MESSAGE IN VARCHAR2 -- ログメッセージ 7 ) 8 IS 9 BEGIN 10 IF PKG_LOG_MONITOR.LOG_MONITOR_MODE = 'ON' THEN 11 DBMS_OUTPUT.PUT_LINE(TO_CHAR(SYSDATE, 'YYYY/MM/DD HH24:MI:SS') || ' ' || I_PROGRAM || ' ' || I_LOG_MESSAGE) ; 12 END IF ; 13 END LOG_MONITOR ; 14 END PKG_LOG_MONITOR ; 15/
SQL:SAMPLE_FUNCTION
1-- サンプル FUNCTION 2CREATE OR REPLACE FUNCTION SAMPLE_FUNCTION 3 RETURN VARCHAR2 4IS 5BEGIN 6 PKG_LOG_MONITOR.LOG_MONITOR 7 ( 8 'SAMPLE_FUNCTION' 9 , 'EXECUTED' 10 ) ; 11 RETURN NULL ; 12END SAMPLE_FUNCTION ; 13/
SQL:
1-- サンプル PROCEDURE 2CREATE OR REPLACE PROCEDURE SAMPLE_PROCEDURE 3IS 4BEGIN 5 PKG_LOG_MONITOR.LOG_MONITOR 6 ( 7 'SAMPLE_PROCEDURE' 8 , 'EXECUTED' 9 ) ; 10END SAMPLE_PROCEDURE ; 11/
SQL:
1-- 実行 2 -- ↓ログを出力するパス 3cd c:\log 4sqlplus username1/password1@oradb 5SET SERVEROUTPUT ON 6SPOOL log_file_name.log 7-- ↓ ログを取得する 8EXECUTE PKG_LOG_MONITOR.LOG_MONITOR_MODE := 'ON' ; 9 10SELECT SAMPLE_FUNCTION FROM DUAL ; 11EXECUTE SAMPLE_PROCEDURE ; 12 13SPOOL OFF
でログを確認
投稿2018/07/10 04:18
編集2018/07/10 09:12総合スコア16417
あなたの回答
tips
太字
斜体
打ち消し線
見出し
引用テキストの挿入
コードの挿入
リンクの挿入
リストの挿入
番号リストの挿入
表の挿入
水平線の挿入
プレビュー
質問の解決につながる回答をしましょう。 サンプルコードなど、より具体的な説明があると質問者の理解の助けになります。 また、読む側のことを考えた、分かりやすい文章を心がけましょう。
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。