一般的函数返回值只有一个,当我们需要返回多个值的时候,可以利用管道流,循环往一个表中加数据,租后返回这个管道流,其实相当于一个结果表或者是表。
然后我们就可以从这个表中获取想要的数据。这里我们可以新建一种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;
/
上面建好类型之后,我们就可以这么去使用了。下图展现如何取使用: