解决方案 »

  1.   

    直接在A函数RETURN不行吗?return B(参数1,……);
      

  2.   

    错误:PLS-00633: 管道函数中的 RTURN 语句不能包含表达式
    A函数和B函数都是管道函数,return时就报错了
      

  3.   

     不就是参数类型改成  in out 吗 ?  难道我理解有误
      

  4.   

    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函数
      

  5.   

    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));
    这是结果集的类型