1

JDBC を介して呼び出される sybase ストアド prodedure を作成しています。特定のエラー状態では、ストアド プロシージャが JDBC 呼び出し元に警告を返すようにします。ストアドプロシージャに何を追加する必要がありますか

Statement.getWarnings()

選択したエラー メッセージを含む SqlWarning を返しますか?

4

1 に答える 1

1

私が間違っていない限り、エラー メッセージ ハンドラーを使用して、SQL 例外を SQL 警告に再マップできます。詳細については、「jConnect 6 Programmer's Reference」を参照してください。カスタム メッセージ ハンドラーの作成方法については、第 2 章のエラー メッセージの処理に関するセクションを参照してください。

これはもちろん、ストアド プロシージャで raiserror を介してエラーを発生させる必要があることを意味しますが、特定のエラーを警告に再マップできるという唯一の利点があります。メッセージ ハンドラーの複雑さは、ストアド プロシージャによって発生したユーザー エラーの数に比例します。

ストアド プロシージャからエラーが発生したときに、SQLWarnings ではなく SQLExceptions が発生する理由は、Sybase がユーザー エラーの重大度を自動的に 16 (「その他のユーザー エラー」と呼ばれる) に設定するためです。重大度レベル 16 のエラーは、自動的に SQLExceptions に変換されます。

于 2009-09-08T19:02:48.107 に答える