GBase 8a
其他
文章

存储过程异常处理方式--GET DIAGNOSTICS

发表于2026-06-29 16:36:2313次浏览1个评论

功能说明:
       语句用于获取错误缓冲区的内容,包括报错信息、DML  操作影响结果数等
语法格式:
      GET [CURRENT |  STACKED] DIAGNOSTICS
{
statement_information_item  [,  statement_information_item]  ... | CONDITION  condition_number  condition_information_item
[, condition_information_item]  ...
}
statement_information_item:
target  =  statement_information_item_name
condition_information_item:
target  =  condition_information_item_name statement_information_item_name:

NUMBER
| ROW_COUNT
condition_information_item_name:  { CLASS_ORIGIN
| SUBCLASS_ORIGIN
| RETURNED_SQLSTATE | MESSAGE_TEXT
| GBASE_ERRNO
| CONSTRAINT_CATALOG | CONSTRAINT_SCHEMA | CONSTRAINT_NAME
| CATALOG_NAME | SCHEMA_NAME | TABLE_NAME
| COLUMN_NAME | CURSOR_NAME
}

 

5- 203    参数说明
statement_information_item:statment  执行情况信息捕获反馈,包括 NUMBER 、 ROW_COUNT
 condition_information_item:捕获异常情况信息。

5- 204 statement_information_item_name  参数说明
number:number    中包含 WARNING   和错误的数量。
row_count:只记录 GET DIAGNOSTICS 命令之前最后一条 DML 操作 的影响行数,不能累加,如果想获取多条 DML 语句的影响 行数,需要在每条 DML 语句后执行 GET DIAGNOSTICS 命令。
5- 205 condition_information_item_name  参数说明
no:表示错误或 WARNINGS   的序号。
number:number    中包含 WARNING   和错误的数量。
row_count:只记录 GET DIAGNOSTICS 命令之前最后一条 DML 操作 的影响行数,不能累加,如果想获取多条 DML 语句的影响 行数,需要在每条 DML 语句后执行 GET DIAGNOSTICS 命令。
gbase_errno:记录错误号。
returned_sqlstate:记录错误状态。
message_text:记录错误信息。

评论

登录后才可以发表评论
GBase用户51829发表于 1个月前
整理得很清晰,实操重点记住 row_count 不累加、两类信息项分工不同,写存储过程异常捕获很实用。