云数据库 GAUSSDB-隐式游标:示例

时间:2024-11-13 14:46:44

示例

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
--删除员工表hr.staffs中某部门的所有员工,如果该部门中已没有员工,则在部门表hr.department中删除该部门。

gaussdb=# CREATE OR REPLACE PROCEDURE proc_cursor3() 
AS 
    DECLARE
    V_DEPTNO NUMBER(4) := 100;
    BEGIN
        DELETE FROM hr.staffs WHERE section_id = V_DEPTNO;
        --根据游标状态做进一步处理
        IF SQL%NOTFOUND THEN
        DELETE FROM hr.department WHERE section_id = V_DEPTNO;
        END IF;
    END;
/

gaussdb=# CALL proc_cursor3();
 proc_cursor3 
--------------

(1 row)

--删除存储过程和临时表
gaussdb=# DROP PROCEDURE proc_cursor3;
support.huaweicloud.com/distributed-devg-v8-gaussdb/gaussdb-12-0798.html