*1。カーソル定義にSELECTとセミコロンが必要です
*2。カーソルの上にFORLOOPを追加できます
例:
DECLARE
cursor c1 is
SELECT street1
from test_data;
r1 c1%ROWTYPE;
BEGIN
FOR r1 IN c1 LOOP
... do your stuff with r1.street1
END LOOP;
END;
または、明示的なカーソル定義を完全に回避することもできます(例:
)。FOR r1 IN (SELECT street1 FROM test_data) LOOP
... do your stuff with r1.street1
END LOOP;
*3。 IFステートメントにセミコロンを含めることはできません-例:
If
Instr(r1.street1, 'Cnr', 1) >= 1
Then
*4。 [編集]テーブル、列newstreetnumber
を更新したい およびnewstreetname
-その場合、次のようなことができます:
DECLARE
cursor c1 is
SELECT street1
from test_data
FOR UPDATE;
r1 c1%ROWTYPE;
BEGIN
FOR r1 IN c1 LOOP
... do your stuff with r1.street1
UPDATE test_data
SET newstreetnumber = ...
,newstreetname = ...
WHERE CURRENT OF c1;
END LOOP;
END;
ただし、これは大量の場合はうまく機能しないことに注意してください。すべてを1つのUPDATEステートメントで実行することをお勧めします。