JDBC を介して呼び出される sybase ストアド prodedure を作成しています。特定のエラー状態では、ストアド プロシージャが JDBC 呼び出し元に警告を返すようにします。ストアドプロシージャに何を追加する必要がありますか
Statement.getWarnings()
選択したエラー メッセージを含む SqlWarning を返しますか?
私が間違っていない限り、エラー メッセージ ハンドラーを使用して、SQL 例外を SQL 警告に再マップできます。詳細については、「jConnect 6 Programmer's Reference」を参照してください。カスタム メッセージ ハンドラーの作成方法については、第 2 章のエラー メッセージの処理に関するセクションを参照してください。
これはもちろん、ストアド プロシージャで raiserror を介してエラーを発生させる必要があることを意味しますが、特定のエラーを警告に再マップできるという唯一の利点があります。メッセージ ハンドラーの複雑さは、ストアド プロシージャによって発生したユーザー エラーの数に比例します。
ストアド プロシージャからエラーが発生したときに、SQLWarnings ではなく SQLExceptions が発生する理由は、Sybase がユーザー エラーの重大度を自動的に 16 (「その他のユーザー エラー」と呼ばれる) に設定するためです。重大度レベル 16 のエラーは、自動的に SQLExceptions に変換されます。