返回首页

gbase数据、南大通用产品文档:GBase8s处理抛出的异常

更新日期:2024年09月11日

当引发异常时,PL/SQL块或子程序的正常执行将停止,并将控制传输到其异常处理程
序,其格式如下:
EXCEPTION
WHEN exception1 THEN -- 处理异常exception1
处理语句序列1
WHEN exception2 THEN -- 处理另一个异常exception2
处理语句序列2

GBase 8s PL/SQL手册
南大通用数据技术股份有限公司
- 129 -

...
WHEN OTHERS THEN -- 处理所有其它异常
处理语句序列3
END;
要捕获引发的异常,请编写异常处理程序。每个处理程序都包含一个WHEN子句,该
子句指定一个异常,然后是引发该异常时要执行的一系列语句。这些语句执行完之后,执
行控制权不返回抛出异常的位置。换言之,您不能在异常中断的地方继续处理。
可选的OTHERS异常处理程序(始终是块或子程序中的最后一个处理程序)充当所有
未明确命名的异常的处理程序。因此,一个块或子程序只能有一个OTHERS处理程序。使
用OTHERS处理程序可以保证不会出现未处理的异常。
如果希望两个或多个异常执行相同的语句序列,请在WHEN子句中列出异常名称,并
用关键字OR分隔它们,如下所示:
EXCEPTION
WHEN over_limit OR under_limit OR VALUE_ERROR THEN
-- 处理这些异常
如果引发列表中的任何异常,则执行相关的语句序列。关键字OTHERS不能出现在异
常名称列表中;它必须自己出现。可以有任意数量的异常处理程序,每个处理程序都可以
将异常列表与一系列语句相关联。但是,异常名称只能在PL/SQL块或子程序的异常处理部
分出现一次。
PL/SQL变量的通常作用域规则适用,因此您可以在异常处理程序中引用本地和全局变
量。但是,当在cursor FOR循环中引发异常时,在调用处理程序之前会隐式关闭游标。因
此,显式游标属性的值在处理程序中不可用。





GBase UP 产品手册 5 数据库管理指南
文档版本04(2021-04-21) 南大通用数据技术股份有限公司 218

功能说明
一个客户端连接的信息,show processlist 命令取于此。
表结构说明
表5- 219 表结构信息说明:




ID
processlist 的ID 号
TASKID
任务ID
SUBTASKID
子任务ID
THREADID
线程ID
USER
连接的用户
HOST
ip 号:端口号
VC
进程正在使用的虚拟集群
DB
进程正在使用的数据库
COMMAND
当前连接执行的命令[Query|Connect|Sleep]
START_TIME
任务开始时间
TIME
当前状态持续的时间
STATE
显示使用当前连接的sql 语句的执行状态
RESOURCE_POOL_NAME
任务所属资源池名称
RESOURCE_POOL_ID
任务所属资源池ID,
取值范围同字段类型取值范围
RESOURCE_POOL_PRIORITY
任务所属资源池优先级,取值范围[1,8]
WAITING_TIME
当前任务等待时间,取值范围同字段类型取值范
围,单位s
RUNNING_TIME
当前任务运行时间,取值范围同字段类型取值范
围,单位s
LOCK
是否有锁
WAIT
正在等待的事件
INFO
显示正在执行的sql 语句
TRACE
trace 信息

GBase 8a MPP Cluster 产品手册
5 数据库管理指南
文档版本953(2022-04-10)
南大通用数据技术股份有限公司
1472