一般的函数返回值只有一个,当我们需要返回多个值的时候,可以利用管道流,循环往一个表中加数据,租后返回这个管道流,其实相当于一个结果表或者是表。
然后我们就可以从这个表中获取想要的数据。这里我们可以新建一种type类型,便于我们存储数据。
直接贴代码:
declare
i_count integer;
begin
SELECT count(1) into i_count FROM user_types a where a.type_name = 'MAP_OBJECT_N2N';
if i_count = 0 then
execute immediate 'CREATE OR REPLACE TYPE "MAP_OBJECT_N2N" as object
(
c_key1 VARCHAR2(50),
c_key2 VARCHAR2(50),
c_key3 VARCHAR2(50),
c_value1 VARCHAR2(100),
c_value2 VARCHAR2(100),
c_value3 VARCHAR2(100)
)';
end if;
end;
/
declare
i_count integer;
begin
SELECT count(1) into i_count FROM user_types a where a.type_name = 'T_MAP_OBJECT_N2N';
if i_count = 0 then
execute immediate 'CREATE OR REPLACE TYPE "T_MAP_OBJECT_N2N" AS TABLE OF MAP_OBJECT_N2N';
end if;
end;
/
上面建好类型之后,我们就可以这么去使用了。下图展现如何取使用:


博客介绍了在函数需返回多个值时,可利用管道流,循环往表中添加数据后返回该管道流,其相当于结果表。还提到新建type类型便于存储数据,并展示了建好类型后的使用方式。
6664

被折叠的 条评论
为什么被折叠?



