我在函数中有一个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;
我需要在recursor中的所有行上执行涉及另一个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;
我的想法是在打开光标之后和返回之前放置此代码。但这会产生编译错误,我无法在线找到合适的示例。感谢您的帮助。