• ベストアンサー

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'」をシステム的に取得方法がありますか?

質問者が選んだベストアンサー

  • ベストアンサー
noname#86752
noname#86752
回答No.2

動的SQLでないので、プログラムで取得するのは難しいです。 (#1さんのおっしゃるとおり、user_idの部分だけ分かればいいと思うのですが・・・) やるのであればOracleでログを取るのがいいと思います。トラブルが発生しているのであれば、ログにSQLが出ていれば原因を特定しやすいと思います。(勘違いということもありますからね)

YinXiaoyu
質問者

お礼

ご回答ありがとうございます。 実は、私は一つの大きなプロジェクトを推進しています。トラブルになった場合、最後実行したSQL文(ホスト変数を翻訳済み)をログに吐き出すべきという部下の提案があります。いい案と思いますが、プログラムで一々編集すると、大変な作業量になり、納期を考えると、躊躇してしまいまう。もし、翻訳済みのSQL文をプログラムで取得できる方法があれば、教えて戴きたいです。 よいお年を!

その他の回答 (1)

回答No.1

こんばんは。 よくわかりませんが、SQLの中身を取得するんでしょうか? >>仮に:USE_ID='yxy19700804'でしたら この:USE_IDの値を取ればいいんだと思いますが・・・? >>システム的に取得方法がありますか? これはどういう意味ですか? (^^ゞ

関連するQ&A