我在函数中有一个 refcursor,声明如下:
my_cursor type_refcur_my
并这样填充:
OPEN my_cursor FOR
SELECT DISTINCT A.vegetable, A.animal, A.mineral, A.ID,
(SELECT DISTINCT SUBSTR(bcptr.bcptr_desc_l1,INSTR(bcptr.bcptr_desc_l1,')',-1)-3,3)
FROM doe D, ray R, me M
WHERE ...) ID
FROM artifacts A
ORDER BY vegetable, mineral;
RETURN my_cursor;
我需要对递归器中的所有行执行一个涉及另一个 SELECT 的操作,并在返回之前使用一些逻辑来更改其中的 2 个列值。有点像:
IF my_cursor.vegetable = (SELECT B.ID from vegetables B
WHERE my_cursor.vegetable = B.vegetable_description)
THEN
my_cursor.A.ID := B.ID
END IF;
我的想法是在打开游标之后和返回之前放置这段代码。但这会产生编译错误,我无法在线找到合适的示例。感谢您的帮助。