* 1. Bạn cần một CHỌN và một dấu chấm phẩy trong định nghĩa con trỏ
* 2. Bạn có thể thêm FOR LOOP qua con trỏ
Ví dụ:
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;
Ngoài ra, bạn có thể tránh hoàn toàn định nghĩa con trỏ rõ ràng, ví dụ:
FOR r1 IN (SELECT street1 FROM test_data) LOOP
... do your stuff with r1.street1
END LOOP;
* 3. Câu lệnh IF của bạn không được bao gồm dấu chấm phẩy - ví dụ:
If
Instr(r1.street1, 'Cnr', 1) >= 1
Then
*4. [sửa] nên bạn muốn cập nhật bảng của mình, các cột newstreetnumber
và newstreetname
- trong trường hợp đó bạn có thể làm điều gì đó như thế này:
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;
Tuy nhiên, lưu ý rằng điều này sẽ không hoạt động tốt đối với khối lượng lớn và tôi muốn thực hiện tất cả trong một câu lệnh CẬP NHẬT.