質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.48%
PL/SQL

PL/SQL (Procedural Language/Structured Query Language) はOracle CorporationによるSQL(非手続き型言語)を手続き型言語に拡張させるために開発されたプログラミング言語です。

Q&A

解決済

1回答

16158閲覧

【PL/SQL】PROCEDUREとFUNCTIONの実行履歴の見方

退会済みユーザー

退会済みユーザー

総合スコア0

PL/SQL

PL/SQL (Procedural Language/Structured Query Language) はOracle CorporationによるSQL(非手続き型言語)を手続き型言語に拡張させるために開発されたプログラミング言語です。

0グッド

0クリップ

投稿2017/08/28 03:31

PROCEDURE及び、FUNCTIONの実行履歴はどのようにすれば見れるのでしょう?

SQLの実行履歴、及びバインド変数の履歴であれば、V$SQLを参照すればいいと下記のページに記載ありますが、同じような感じで、PROCEDURE、及びFUNCTIONの実行履歴を確認する方法は無いものでしょうか?

直近5分以内に実行したSQLの履歴を確認する

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答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
Orlofsky

総合スコア16415

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.48%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問