oracle 自定义函数返回一个自定义整数列,如何在下一个自定义函数中,调用上一个函数

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了oracle 自定义函数返回一个自定义整数列,如何在下一个自定义函数中,调用上一个函数相关的知识,希望对你有一定的参考价值。

---自定义类型
create or replace type t_int is table of integer

-- Create table
create table TESTFUNCTION
(
oid INTEGER,
result INTEGER
)
tablespace USERS
pctfree 10
initrans 1
maxtrans 255;

-- Create table no.1
create or replace function FindAllChildGroup1 (mid int)
Return T_INT--dtable table(ID int)
As
dtable T_INT;
Begin
select T_INT(a.result) into dtable from testfunction a where a.oid!=mid ;

return (dtable);
END FindAllChildGroup1;

-- Create table no.2
create or replace function FindAllChildDoc (pid IN OUT int)
Return T_INT--- dtable table(ID int)
As
dtable T_INT;
dtable_ T_INT;
Begin
dtable_:= FindAllChildProject (pid);
select T_INT(a.o_itemno) into dtable from
(
select o_itemno from CDMS_Doc
where o_projectno in (select * from dtable_)

) a ;
return (dtable);
End FindAllChildDoc;

现在的问题在 ‘ where o_projectno in (select * from dtable_)’这句

错误:PL/SQL: ORA-00942: 表或视图不存在
行:11
文本:where o_projectno in (select * from dtable_)

错误:PL/SQL: SQL Statement ignored
行:8
文本:select T_INT(a.o_itemno) into dtable from

dtable_ 为int数组,需要拼字符串,然后使用execute immediate 这种动态sql的方式执行。追问

你好,我是初学者,我应该怎么拼字符串呢??

追答

把这一句
<<EOF
select T_INT(a.o_itemno) into dtable from
(
select o_itemno from CDMS_Doc
where o_projectno in (select * from dtable_)

) a ;
EOF
写到一个varchar2变量v_sql里面记得拼字符串,然后execute immediate v_sql into dtable ;

参考技术A 11111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111

EXCEL宏如何让自定义函数返回错误代码?

比如在excel单元格输入=2/0,得到的结果是#div/0!,我想写一个自定义函数
function ffchufa(a,b)
......
if b=0 then
ffchufa=2/0
end if
end function
这时ffchufa(5,0)返回的结果是#value!,而不是#div/0!
我想让b=0时,返回结果是#div/0,该如何操作呢?

参考技术A . 问题: 假设我们在Excel中有以下需求: 你可以嵌套使用IF函数,判断每一个分数属于哪一个区间。但是,4层IF会不会很容易出错;如果是5个区间,甚至是10个区间呢?追问

我给出的if b=0 then只是举个例子,判断除数如果为0,想此时返回#div/0!。
我不知道在if和End if之间怎样写,才能返回#div/0!

以上是关于oracle 自定义函数返回一个自定义整数列,如何在下一个自定义函数中,调用上一个函数的主要内容,如果未能解决你的问题,请参考以下文章

自定义一个函数sumfib(n),返回斐波那契数列前n项之和 python?

Oracle创建一个自定义函数,返回emp表的行数,请问哪位大神知道啊?

oracle 自定义函数,调用时报“程序包或函数无效”

oracle 自定义函数传参可以判断值么

oracle 自定义函数

FORTRAN自定义函数返回值