Pro*C コードでは、最後に実行された SQL ステートメントをsqlgls()
(またはSQLStmtGetText()
)経由で取得できます。
これは、ロギングの目的、特に動的ステートメントの場合に役立ちます。
しかし、これらの SQLLIB 関数によって返される SQL ステートメントには、バインド マーカー (つまり:b1
、:b2
... など) しか含まれていません。使用されるホスト変数の実際の値は含まれません。
したがって、次の質問があります: ホスト変数の値を含む最後の SQL ステートメントを表示するにはどうすればよいですか?
それ以外の場合は、によって返された文字列を出力した後に、使用されているすべての変数を手動で出力する必要がありますsqlgls()
。これは、まったく使用せずに SQL ステートメントを出力するよりも便利ではありませんsqlgls
。
たとえば、代わりに
INSERT INTO MYTABLE VALUES (:b1, :b2, :b3);
印刷したい:
INSERT INTO MYTABLE VALUES ("hello", "world", 12);
(ロギングに加えて、SQLシェルにコピーして貼り付けやすくするため、つまりテスト用)