*1. Anda memerlukan SELECT dan titik koma dalam definisi kursor
*2. Anda dapat menambahkan FOR LOOP di atas kursor
Misalnya:
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;
Sebagai alternatif, Anda dapat menghindari definisi kursor eksplisit sepenuhnya, mis.:
FOR r1 IN (SELECT street1 FROM test_data) LOOP
... do your stuff with r1.street1
END LOOP;
*3. Pernyataan IF Anda tidak boleh menyertakan titik koma - mis.:
If
Instr(r1.street1, 'Cnr', 1) >= 1
Then
*4. [edit] jadi Anda ingin memperbarui tabel Anda, kolom newstreetnumber
dan newstreetname
- dalam hal ini Anda dapat melakukan sesuatu seperti ini:
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;
Namun, perhatikan bahwa ini tidak akan bekerja dengan baik untuk volume besar, dan saya lebih suka melakukan semuanya dalam satu pernyataan UPDATE.