支持函数内调用独立package的属性
功能描述
PL/SQL里,对于函数的参数类型,可以通过%type
引用package中的属性来声明。即PL/SQL里函数参数支持调用独立package的属性,具体用法参考示例。
注意事项
该功能仅在数据库兼容模式为Oracle时支持(即数据库初始化时指定DBCOMPATIBILITY='A')。
示例
1、创建package。
create or replace package mytype as
var1 varchar(22);
var2 char(32);
end;
/
2、创建函数,并引用上一步package中的参数类型作为该函数的参数类型。
兼容PostgreSQL风格的自定义函数创建语法:
(1)创建函数fuc_1:
create or replace function func_1(result mytype.var1%type) returns int as $$ declare begin dbms_output.put_line('result is: '||result); return 1; end; $$ language plpgsql;
(2)调用函数fuc_1:
set serveroutput on; --使信息从存储过程传输回应用程序并输出在屏幕上 select func_1('test');
调用成功,返回结果如下:
result is: test fun_1 ------- 1 (1 row)
兼容Oracle风格的自定义函数创建语法:
(1)创建函数fuc_2:
create or replace function func_2 (result mytype.var2%type) return int as declare begin dbms_output.put_line('result is: '||result); return 1; end; /
(2)调用函数fuc_2:
set serveroutput on; --使信息从存储过程传输回应用程序并输出在屏幕上 select func_2('test');
调用成功,返回结果如下:
result is: test fun_2 ------- 1 (1 row)