- ベストアンサー
Pro COBOLでは、最後執行したSQL文を取得したい
【背景】バッチプログラムを実行中、トラブルが発生した場合、どのSQL文が発行されてトラブルになったか知りたいです。 例えば、EXEC SQL SELECT * FROM USE_TABLE WHERE USE_ID=:USE_ID直後でトラブルになった場合、仮に:USE_ID='yxy19700804'でしたら、COBOLがOracleにEXEC SQL SELECT * FROM USE_TABLE WHERE USE_ID='yxy19700804'といったSQL文を発行した直後、トラブルになります。「EXEC SQL SELECT * FROM USE_TABLE WHERE USE_ID='yxy19700804'」をシステム的に取得方法がありますか?
- みんなの回答 (2)
- 専門家の回答
質問者が選んだベストアンサー
- ベストアンサー
noname#86752
回答No.2
動的SQLでないので、プログラムで取得するのは難しいです。 (#1さんのおっしゃるとおり、user_idの部分だけ分かればいいと思うのですが・・・) やるのであればOracleでログを取るのがいいと思います。トラブルが発生しているのであれば、ログにSQLが出ていれば原因を特定しやすいと思います。(勘違いということもありますからね)
その他の回答 (1)
- taka451213
- ベストアンサー率47% (436/922)
回答No.1
こんばんは。 よくわかりませんが、SQLの中身を取得するんでしょうか? >>仮に:USE_ID='yxy19700804'でしたら この:USE_IDの値を取ればいいんだと思いますが・・・? >>システム的に取得方法がありますか? これはどういう意味ですか? (^^ゞ
お礼
ご回答ありがとうございます。 実は、私は一つの大きなプロジェクトを推進しています。トラブルになった場合、最後実行したSQL文(ホスト変数を翻訳済み)をログに吐き出すべきという部下の提案があります。いい案と思いますが、プログラムで一々編集すると、大変な作業量になり、納期を考えると、躊躇してしまいまう。もし、翻訳済みのSQL文をプログラムで取得できる方法があれば、教えて戴きたいです。 よいお年を!