GOTO语句可以从异常处理程序跳转到父块。例如:
CREATE TABLE t2(c1 VARCHAR(200));
CREATE OR REPLACE PROCEDURE sp1(X INT) IS
begin
<
DECLARE
-- Raises an error:
i int := 10;
BEGIN
i := 10 / x;
INSERT INTO t2 VALUES('now x is not 0');
GBase 8s PL/SQL手册
南大通用数据技术股份有限公司
- 131 -
EXCEPTION
WHEN zero_divide THEN
INSERT INTO t2 VALUES('in sub-block, zero_divide');
x := 10;
GOTO label1;
END;
end;
CALL sp1(0);
SELECT * FROM t2;
GBase 8s PL/SQL手册
南大通用数据技术股份有限公司
- 132 -