1
我必须编写一个Oracle过程,它应该调用返回REF_CURSOR的Oracle函数。功能是这样声明的如何使用函数在过程中返回Oracle REF_CURSOR
FUNCTION "IMPACTNET"."TF_CONVERTPARA" (PARASTRING IN NVARCHAR2) RETURN SYS_REFCURSOR
AS
c SYS_REFCURSOR;
BEGIN
OPEN c FOR
SELECT SUBSTR(element, 1, INSTR(element, '|') - 1) as key,
SUBSTR(element, INSTR(element, '|') + 1, 99999) as val
FROM (
SELECT REGEXP_SUBSTR(PARASTRING, '[^;]+', 1, LEVEL) element
FROM dual
CONNECT BY LEVEL < LENGTH(REGEXP_REPLACE(PARASTRING, '[^;]+')) + 1
);
RETURN c;
END;
你能告诉我什么我需要编写以调用我的过程中的功能?我想插入所有返回的值(塑造一个有两列的表)到一个有理的表中。
预先感谢您!
对BULK COLLECT收集结果然后用FORALL插入它们不是更好吗? – Ollie
很酷,它的作品!谢谢! – llasarov
@Ollie - 这绝对会更有效率。我只是为了简单而不是表现。但我采纳了你的建议,并使用'BULK COLLECT'发布了一个例子 –