求大神指点,函数互相调用的问题

www4662777 2014-07-26 02:41:34
A、B函数都是返回结果集的函数,返回结果是表类型的
,两个函数共用一个表类型。
现在A函数里面调用B函数,如何在A函数里面返回调用B函数的结果

...全文
153 8 打赏 收藏 转发到动态 举报
写回复
用AI写文章
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
www4662777 2014-07-28
  • 打赏
  • 举报
回复
CREATE OR REPLACE TYPE JG_TEST_LIST AS TABLE OF JG_TEST_TYPE; CREATE OR REPLACE TYPE JG_TEST_TYPE AS OBJECT (unintinfo VARCHAR2 (1024)); 这是结果集的类型
www4662777 2014-07-28
  • 打赏
  • 举报
回复
CREATE OR REPLACE FUNCTION JG_GET_TABLE_TEST1 RETURN JG_TEST_LIST pipelined IS v_unintinfo JG_TEST_TYPE;--临时变量 v_num integer; begin v_num:=1; FOR v_num in 1..10 LOOP v_unintinfo:=JG_TEST_TYPE(v_num); PIPE ROW(v_unintinfo);-- 将临时变量放入返回的结果中 END LOOP; RETURN ;-- 返回数据 END; 这是B函数 CREATE OR REPLACE FUNCTION F_GET_MTL_FROM( F_LOCATOR_ID IN VARCHAR2 --指定货位 ) RETURN JG_TEST_LIST PIPELINED IS LIST JG_TEST_LIST; BEGIN SELECT JG_GET_TABLE_TEST1() into list from dual; RETURN; END F_GET_MTL_FROM; 这是A函数,这个里面调用了B函数
www4662777 2014-07-28
  • 打赏
  • 举报
回复
等我弄点例子,大家试下
xu176032 2014-07-28
  • 打赏
  • 举报
回复
不就是参数类型改成 in out 吗 ? 难道我理解有误。。。
www4662777 2014-07-28
  • 打赏
  • 举报
回复
是在调用B函数,返回其结果这块我不知道怎么写了,不是报错了,解决问题
huangdh12 2014-07-27
  • 打赏
  • 举报
回复
能不能把你的表结构创建语句,还有初始化数据, 以及你的函数创建语句 贴上来, 这样我们也比较方便排查问题。
www4662777 2014-07-26
  • 打赏
  • 举报
回复
错误:PLS-00633: 管道函数中的 RTURN 语句不能包含表达式 A函数和B函数都是管道函数,return时就报错了
bw555 2014-07-26
  • 打赏
  • 举报
回复
直接在A函数RETURN不行吗? return B(参数1,……);

3,491

社区成员

发帖
与我相关
我的任务
社区描述
Oracle 高级技术相关讨论专区
社区管理员
  • 高级技术社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧