元素 | 描述 | 限制 | 语法 |
---|---|---|---|
exception_num | 异常的数量 | 从 1 至 35,000 的整数 | 文字的数值 |
exception_var | 存储 exception_num 的变量 | 必须为 SMALLINT 或 INT | 特定于语言 |
information | 接收指定的异常域的值的主变量 | 数据类型必须与指定的字段的数据类型向匹配 | 特定于语言 |
exception_num 文字表示从 Statement 子句中的 NUMBER 字段返回的异常的数量的异常值之一。
在检索异常信息时,GET DIAGNOSTICS 将七个字段中的每一个的值写到相应的主变量内。这些域定位在诊断区域中,并从最近的 SQL 语句产生的异常派生而来。
域名称关键字 | 域数据类型 | 域内容 | ESQL/C 主变量数据类型 |
---|---|---|---|
RETURNED_SQLSTATE | 字符 | SQLSTATE 值 | char[6] |
GBASEDBT_SQLCODE | 整数 | 特定于 GBase 8s 的状态代码 | int4 |
CLASS_ORIGIN | 字符 | 字符串 | char[255] |
SUBCLASS_ORIGIN | 字符 | 字符串 | char[255] |
MESSAGE_TEXT | 字符 | 字符串 | char[255] |
MESSAGE_LENGTH | 整数 | 数值 | int |
SERVER_NAME | 字符 | 字符串 | char[255] |
CONNECTION_NAME | 字符 | 字符串 | char[255] |
应用通过编号指定异常,或使用无符号的整数,或使用整数主变量(小数位为 0 的精确数值)。值为 1 的异常对应于由最近的 SQL 语句而不是 GET DIAGNOSTICS 设置的 SQLSTATE 值。其他异常编号与由 SQL 语句产生的其他异常之间的关联未定义。这样,不存在设置顺序,异常值依次顺序填充到诊断区域。您通常会得到至少一个异常,即使 SQLSTATE 值表示成功。
如果在 GET DIAGNOSTICS 语句内发生错误(即,如果请求了无效的异常编号),则将 GBase 8s 内部的 SQLCODE 和 SQLSTATE 变量设置为那个异常的值。此外,未定义 GET DIAGNOSTICS 字段。