1

皆さん、DB2 9.x では、delete ステートメントは正常に機能し、特定の行が存在する場合は正常なリターン コードが返されます。ただし、行が存在しない場合は、ゼロ以外を返します

つまり、EmployeeTable に employeeID 1234 が含まれていない db2 "delete from EmployeeTable where employeeID = 1234"
とします。以下のような出力が得られます。

SQL0100W  No row was found for FETCH, UPDATE or DELETE; or the result of a query is an empty table.  SQLSTATE=02000

行が存在しない場合、成功/ゼロの戻りコードを返す方法はありますか?

4

2 に答える 2

1

その削除ステートメントをストアド プロシージャでラップし、内部で例外をキャッチできます。ストアド プロシージャの実行では、常に 0 がスローされます。

コマンドに警告があるため、コマンド ラインからは何もできません。db2 delete を呼び出すときに後処理を行うこともできます。たとえば、シェル関数を作成し、その sqlcode が発生した場合はエラー コードを変更します。

于 2013-03-08T10:06:13.823 に答える