PL / SQL:在返回调用过程之前循环并更改REFCURSOR行

时间:2013-05-07 17:00:59

标签: oracle plsql ref-cursor

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

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

0 个答案:

没有答案