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