#openGauss #入门 #安装 #数据库 #开源
知识来源:docs-opengauss.osinfra.cn/zh/
用例:
set behavior_compat_options='allow_procedure_compile_check';
create table int4_table(a NUMBER, b VARCHAR2(5));
insert into int4_table(a) values(3,'johan');
create table int_table(a NUMBER, d NUMBER, b VARCHAR2(5));
insert into int_table(a, d, b) values(3, 6,'johan');
create or replace package pck1 is
cursor cur1 is select * from int4_table;
var1 cur1%rowtype:=(3, 'ada');
procedure ppp1;
procedure ppp2(a cur1%rowtype);
end pck1;
/
create or replace package body pck1 is
procedure ppp1() is
cursor cur2 is select * from int_table;
begin
open cur2;
fetch cur2 into var1;
ppp2(var1);
raise info '%', var1.a;
end;
procedure ppp2(a cur1%rowtype) is
begin
raise info '%', a.a;
end;
end pck1;
/
call pck1.ppp1();
ALTER TABLE int_table DROP COLUMN d;
call pck1.ppp1();
须知:
- %TYPE不支持引用复合类型或RECORD类型变量的类型、RECORD类型的某列类型、跨PACKAGE复合类型变量的某列类型、跨PACKAGE cursor变量的某列类型等。
- %ROWTYPE不支持引用复合类型或RECORD类型变量的类型、跨PACKAGE cursor的类型。
#openGauss #入门 #安装 #数据库 #开源