実行されたSQLのSQL文を取得するには、
V$SQLTEXT、V$SQLTEXT_WITH_NEWLINESビューを参照します。
V$SQLTEXTと、V$SQLTEXT_WITH_NEWLINES の違いは、前者はSQL内の改行コードが半角スペースに置き換えられていて、後者は改行コードはそのままといった違いがあります。
V$SQLTEXTの定義
V$SQLTEXT、V$SQLTEXT_WITH_NEWLINESの定義です。(定義は共通)
列名 | 型 | メモ |
---|---|---|
ADDRESS | RAW(4 | 8) | |
HASH_VALUE | NUMBER | |
SQL_ID | VARCHAR2(13) | SQL識別子 |
COMMAND_TYPE | NUMBER | SQL文のタイプ (SELECT、INSERTなど) |
PIECE | NUMBER | SQLの順番 |
SQL_TEXT | VARCHAR2(64) | SQLの一部分 |
サンプル
例)SQL_ID='999'のSQL全文を取得する
1 2 3 |
SELECT SQL_TEXT FROM V$SQLTEXT WHERE SQL_ID = '999' ORDER BY PIECE ASC; |
メモ
- SQL文は64バイト単位に分割されて複数レコードに格納されます。