2009-07-09 58 views
0

私が直面している問題は、主に例外処理です。例外が発生すると、エラーメッセージとともにそのデータを別のログテーブルに入れたいと思います。しかし、DB2では、発生したSQLSTATEの対応するエラー・メッセージを取り出す方法を見つけることができません。DB2例外処理

PS:私はこの移行のためのストアドプロシージャを持っていますが、私はそれを呼び出すために他の言語を使用していません。

私はすでにこれについて質問していますが、私はいくつか貴重な情報を得ています。

参照してください:DB2 Exception handling

しかし、私は以下のようなメッセージ取得の基本的な23502のために、その後の基本的なSQLERRM関数を使用する場合:

「SQLSTATEの23502:挿入または更新値がnullであるが、しかし、コラムヌル値を含むことはできません。

私が本当に欲しいのは、このメッセージに追加されたこのエラーを投げた列名です。何か方法はありますか?DB2は私に完全なエラーを与え、エラーが発生した列名を使用できますか?事前に

おかげで; - )...

Harveer

答えて

1

あなたは、このようなエラーが発生したとき、SQLCAからのトークンのすべてを取得する必要があります。トークンには、表名と列名のいずれか、または表内の数値表IDと列位置がゼロから始まります。 SQLERRM関数は、これらのトークンを取り込んで、それらを使用して、コマンド行から表示されるものと同じ詳細なエラー・メッセージを再構成します。