云数据库 GAUSSDB-执行动态查询语句:OPEN FOR
时间:2025-07-25 09:27:48
OPEN FOR
动态查询语句还可以使用OPEN FOR打开动态游标来执行。
语法参见图3。
参数说明:
- cursor_name:要打开的游标名。
- dynamic_string:动态查询语句。
- USING value:在dynamic_string中存在占位符时使用。
游标的使用请参考游标。
示例
gaussdb=# CREATE SCHEMA hr; CREATE SCHEMA gaussdb=# SET CURRENT_SCHEMA = hr; SET gaussdb=# CREATE TABLE staffs ( section_id NUMBER, first_name VARCHAR2, phone_number VARCHAR2, salary NUMBER ); CREATE TABLE gaussdb=# INSERT INTO staffs VALUES (30, 'mike', '13567829252', 5800); INSERT 0 1 gaussdb=# INSERT INTO staffs VALUES (40, 'john', '17896354637', 4000); INSERT 0 1 gaussdb=# 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; / mike#13567829252#5800.00 ANONYMOUS BLOCK EXECUTE
support.huaweicloud.com/centralized-devg-v8-gaussdb/gaussdb-42-0779.html