oracle function中可以返回多个值吗,类似于下图
2个回答
展开全部
可以的哦,你可以吧多个值弄成一个对象,然后作为一个对象传出,如:
create or replace type spell_code as object(spell varchar2(10),code number);
create or replace type t_spellcode is table of spell_code;
create or replace function f_getSpellcode return t_spellcode Pipelined
is
Begin
PIPE Row(spell_code('a', -20319));
PIPE Row(spell_code('ai', -20317));
PIPE Row(spell_code('an', -20304));
PIPE Row(spell_code('ang', -20295));
PIPE Row(spell_code('zuo', -10254));
Return;
end
执行完以上脚本,执行:select * from table(f_getSpellcode())
是不是看到就是多行记录哇,简单说明下,spell_code 这个是我想要返回一行对应的列记录,t_spellcode 这个可以是数组,里面可以存放多行,f_getSpellcode 函数里面返回的是t_spellcode 是多行,所以就达到目的了
你可以看一下我以前在一个项目中写的函数:http://piaoliupingblog.iteye.com/blog/1915579
create or replace type spell_code as object(spell varchar2(10),code number);
create or replace type t_spellcode is table of spell_code;
create or replace function f_getSpellcode return t_spellcode Pipelined
is
Begin
PIPE Row(spell_code('a', -20319));
PIPE Row(spell_code('ai', -20317));
PIPE Row(spell_code('an', -20304));
PIPE Row(spell_code('ang', -20295));
PIPE Row(spell_code('zuo', -10254));
Return;
end
执行完以上脚本,执行:select * from table(f_getSpellcode())
是不是看到就是多行记录哇,简单说明下,spell_code 这个是我想要返回一行对应的列记录,t_spellcode 这个可以是数组,里面可以存放多行,f_getSpellcode 函数里面返回的是t_spellcode 是多行,所以就达到目的了
你可以看一下我以前在一个项目中写的函数:http://piaoliupingblog.iteye.com/blog/1915579
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询