OceanBaseデータベースのPL機能は、異常処理を行う際に使用上の制限があります。
OceanBaseデータベースのPL機能で異常処理を行う際には、以下の使用制限に注意する必要があります:
SIGNAL、RESIGNAL、およびGET DIAGNOSTICSは、準備済みステートメントとして使用することはできません。以下の例のステートメントは無効です:PREPARE stmt1 FROM 'SIGNAL SQLSTATE "42000"';'04'クラスの
SQLSTATE値は特別な処理がされていないため、他の例外と同じように処理されます。標準SQLでは、最初の条件は前のSQL文が返す
SQLSTATE値に関連付けられるべきですが、常にそうであるとは限らないため、次のステートメントで主要なエラー情報を取得することはできません:GET DIAGNOSTICS CONDITION 1 @err_no = MYSQL_ERRNO;代わりに、次の方法を使用することを推奨します:
GET DIAGNOSTICS @count_no = NUMBER; GET DIAGNOSTICS CONDITION @count_no @err_no = MYSQL_ERRNO;