oracle 自定义函数返回一个自定义整数列,如何在下一个自定义函数中,调用上一个函数
---自定义类型createorreplacetypet_intistableofinteger--CreatetablecreatetableTESTFUNCTION(...
---自定义类型
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 展开
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 展开
2个回答
2013-12-01 · 知道合伙人软件行家
renfengjun1986
知道合伙人软件行家
向TA提问 私信TA
知道合伙人软件行家
采纳数:925
获赞数:1553
中国地质调查局特聘数据库专家 CSDN博客专家 百度知道数据库行家 炼数成金版主 想了解更多请关注我的博客:
向TA提问 私信TA
关注
展开全部
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 ;
展开全部
11111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询