云数据库 GaussDB-执行动态查询语句:OPEN FOR

时间:2023-11-01 16:22:24

OPEN FOR

动态查询语句还可以使用OPEN FOR打开动态游标来执行。

语法参见图3

图3 open_for::=

参数说明:

  • cursor_name:要打开的游标名。
  • dynamic_string:动态查询语句。
  • USING value:在dynamic_string中存在占位符时使用。

游标的使用请参考游标

示例

 1 2 3 4 5 6 7 8 9101112131415161718192021
postgres=# DECLARE    name          VARCHAR2(20);    phone_number  VARCHAR2(20);    salary        NUMBER(8,2);    sqlstr        VARCHAR2(1024);    TYPE app_ref_cur_type IS REF CURSOR;  --定义游标类型    my_cur app_ref_cur_type;  --定义游标变量    BEGIN    sqlstr := 'select first_name,phone_number,salary from hr.staffs         where section_id = :1';    OPEN my_cur FOR sqlstr USING '30';  --打开游标, using是可选的    FETCH my_cur INTO name, phone_number, salary; --获取数据    WHILE my_cur%FOUND LOOP          dbe_output.print_line(name||'#'||phone_number||'#'||salary);          FETCH my_cur INTO name, phone_number, salary;    END LOOP;    CLOSE my_cur;   --关闭游标END;/
support.huaweicloud.com/devg-opengauss/opengauss_devg_0679.html