oracle function中可以返回多个值吗,类似于下图

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了oracle function中可以返回多个值吗,类似于下图相关的知识,希望对你有一定的参考价值。

可以的哦,你可以吧多个值弄成一个对象,然后作为一个对象传出,如:
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
参考技术A 不能返回多个值 但是能返回多个值组成的对象 把多个值定义成对象就可以了

Oracle中function和procedure的区别

Oracle中function和procedure的区别: 

1). 可以理解函数是存储过程的一种 
2). 函数可以没有参数,但是一定需要一个返回值,存储过程可以没有参数,不需要返回值 
3). 函数return返回值没有返回参数模式,存储过程通过out参数返回值, 如果需要返回多个参数则建议使用存储过程 
4). 在sql数据操纵语句中只能调用函数而不能调用存储过程

以上是关于oracle function中可以返回多个值吗,类似于下图的主要内容,如果未能解决你的问题,请参考以下文章

您可以从 Redshift 中的 python UDF 返回多个值吗?

R闪亮的反应()函数可以返回多个值吗?

Oracle中function和procedure的区别

oracle面试题

Python 函数可以只返回两个值中的第二个吗?

可以在单个 TextInput 中保存多个值吗?