返回首页

gbase数据、南大通用产品文档:GBase8s子函数的参数

更新日期:2024年09月11日

游标变量可以作为子程序参数用于在子程序间传递结果集:可以在一个子程序中打开
游标变量,在其他子程序中处理他。当声明一个游标变量作为子函数的参数时:
l
如果子程序打开或者给游标变量赋值,则参数需要为IN OUT类型;
l
如果子程序只是获取数据,关闭游标变量,则参数可以为IN 或 IN OUT类型;
注意:只有SYS_REFCURSOR游标变量支持。REF CURSOR不支持。
DROP TABLE IF EXISTS T2;
CREATE TABLE T2(ID INT,COL VARCHAR(10));
INSERT INTO T2 VALUES(111,'AAA');
INSERT INTO T2 VALUES(222,'BBB');
DROP TABLE IF EXISTS T3;
CREATE TABLE T3(ID INT,COL VARCHAR(10));
DROP PROCEDURE IF EXISTS PRO2;
DROP PROCEDURE IF EXISTS PRO3;

CREATE OR REPLACE PROCEDURE pro2 (CURSOR_A OUT SYS_REFCURSOR) IS

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

BEGIN
OPEN CURSOR_A FOR 'SELECT * FROM t2';
END;

CREATE OR REPLACE PROCEDURE P_6_27 IS
v1 INT;
v2 VARCHAR(10);
cursor_b SYS_REFCURSOR;
BEGIN
pro2(cursor_b);
LOOP
FETCH cursor_b INTO v1,v2;
EXIT WHEN cursor_b%NOTFOUND;
INSERT INTO t3 VALUES(v1,v2);
END LOOP;
END;
6.
动态SQL
PL/SQL执行SQL语句时,有的SQL语句只能在运行阶段才能建立,例如当查询条件为
用户输入时,SQL引擎无法在编译期对该语句进行确定,只有在用户输入一定的查询条件
才能提交给SQL引擎进行处理,这种方式被称作动态SQL语句。
动态SQL是在运行时产生和执行SQL语句的一种编程方法。下列情况下动态SQL是非常
有用的。
l
像编写ad hoc查询系统一样,编写一个多用途和灵活性非常强的应用程序。
l
编写必须用DDL语句的应用程序。
l
在编译时并不知道完整的SQL语句。
l
在编译时并不知道输入输出变量的类型和数量。
可以用EXECUTE IMMEDIATE语句处理大多数的动态SQL语句,EXECUTE IMMEDIATE
语句最多返回一行结果集。
如果动态SQL语句返回结果集为多行,使用OPEN FOR, FETCH和CLOSE语句。

功能

GBase 8a MPP Cluster 产品手册
6 附录
文档版本953(2022-04-10)
南大通用数据技术股份有限公司
1549
这个参数用于设置当JOIN 两边都不是hash列时,
是否仍强制走hash重分布JOIN。
参数取值含义说明

参数= 0:表示关闭,即当JOIN 两边都不是hash 列时,不使用hash 重分布
JOIN 功能;

参数= 1:
表示开启,
即当JOIN 两边都不是hash 列时,
使用hash 重分布JOIN
功能。
该参数的默认值是1。
表6- 6 参数显示
默认值
最小值
最大值
1
0
1






GBase 8s ODBC Driver 程序员指南
南大通用数据技术股份有限公司
- 1 -
1 简介