Following are the Function Details.
如何将sp_member函数转换为PostgreSQL
PROCEDURE sp_member(
i_date IN date,
o_result OUT NUMBER)
IS
o_rowset ref cursor;
v_counter number := 0;
v_test number;
v_mem_id i_mem_id;
v_date date;
v_source varchar2(200);
v_start_date i_start_date;
v_end_date i_end_date;
v_date i_date;
v_request_source i_request_source;
v_user_created i_user_created;
BEGIN
v_user_created:= 'ADMIN';
o_result:=0;
OPEN o_rowset FOR
select * from TABLE(fn_get_member(i_date)); -- it returns 3 columns id(number)date_1(date),source(varchar2)
LOOP
v_counter := v_counter + 1;
FETCH o_rowset
INTO v_test,v_date,v_source;
EXIT WHEN o_rowset%NOTFOUND;
v_mem_id(v_counter) := v_test;
v_start_date(v_counter):= v_date;
v_end_date(v_counter):= null;
v_date(v_counter):= null;
v_request_source(v_counter):= v_source;
END LOOP;
sp_add_member(v_mem_id,v_start_date,v_end_date,v_date,v_request_source,v_user_created, o_result);
EXCEPTION
WHEN OTHERS THEN
BEGIN
ROLLBACK;
o_result := 0;
END;
END sp_member;
这是另一个功能细节
sp_add_member(//输入参数) 为我在i_mem_id.first .. i_mem_id.last 环 更新MEMBER_CLASS SET END_DATE = SYSDATE, USER_MODIFIED = i_user_created, DATE_MODIFIED = SYSDATE 在哪里MEM_ID = i_mem_id(i)
INSERT INTO MEMBER_CLASS (MEMBER_CLASS_ID,
MEM_ID,
START_DATE,
END_DATE,
DATE,
USER_CREATED,
DATE_CREATED,
REQUEST_SOURCE,
)
VALUES (1,
i_mem_id(i),
i_start_date(i),
i_end_date(i),
i_date(i),
i_user_created,
SYSDATE,
i_request_source(i),
);
END LOOP;
o_result := 1;
COMMIT;
END sp_add_member;
在调用该函数后,我无法转换成PostgreSQL