Out Of My Memory

雨垂れ石を穿つ

【Oracle】【Windowsバッチ】sqlplus経由でSQLの全文を取得する

Oracle 12c EE で使用

作成するもの

1.取得したいSQLのOLD_HASH_VALUE(OHV)を記載したテキストファイル(ファイル名:hash_value.txt)
2. windowsバッチファイル
3. SQLファイル(ファイル名:get_fulltext.sql)

作成するのもの詳細

1.OLD_HASH_VALUEを記載したテキストファイル

事前にStatspackレポートから全文を取得したいSQLのOHVを確認し、テキストファイルに記載しておく。

OLD_HASH_VALUE1
OLD_HASH_VALUE2
OLD_HASH_VALUE3

2. windowsバッチファイル

@echo off
cd "%~dp0"

for /f %%i in (.¥hash_value.txt) do (
  sqlplus username/password@ORCL @get_fulltext.sql %%i
)

popd

pause

3.SQLファイル

spool Fulltext_&1.txt
trimspool on
set linesize 32000
set pagesize 50000
set long 1000000
set longchunksize 1000000
set SQL_FULLTEST FOR A60000
SELECT SQL_FULLTEXT FROM V$SQLAREA WHERE OLD_HASH_VALUE='$1';
spool off
exit

実行方法

上記3ファイルを同じディレクトリに配置してバッチファイルを叩く。

実行結果

hash_value.txtに記載したOHVごとにSQL全文がテキストファイルとして保存される。