0

我在函数中有一个 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;

我的想法是在打开游标之后和返回之前放置这段代码。但这会产生编译错误,我无法在线找到合适的示例。感谢您的帮助。

4

0 回答 0