Oracleで流れたSQLを取得するには

Oracleでは流れたSQLを保存しているので後から見ることができる。

方法はV$SQLに以下のようなselectをかける。

SELECT
*
FROM
V$SQL
WHERE
PARSING_SCHEMA_NAME = 'HOGE'
AND ROWNUM < 100
AND SQL_TEXT LIKE '%SELECT MOGA%'




使ったSQLの一部でもわかればこれで引っかかるだろう。

しかしSQL_TEXTは1000文字までしか保存されていないので、
それ以上になる場合は上記SQLSQL_IDがわかるのでそれを元に以下のようなSQLを投げれば良い。

SELECT
sql_text
FROM
v$sqltext
WHERE
sql_id = '&sql_id'
ORDER BY
piece;


これで全文が見えるはずだ。


参考リンク
http://odakeiji.blog33.fc2.com/blog-entry-23.html