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函数
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)); 这是结果集的类型
A函数和B函数都是管道函数,return时就报错了
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函数
CREATE OR REPLACE TYPE JG_TEST_TYPE AS OBJECT (unintinfo VARCHAR2 (1024));
这是结果集的类型