次のように宣言された関数に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;
私の考えは、カーソルを開いた後、それを返す前にこのコードを配置することでした。しかし、これによりコンパイル エラーが発生し、オンラインで適切な例を見つけることができません。