I believe I need a cursor for loop to go through the street1 column from table test_data. I have a program which needs to test each row from the table.
This is what I have so far:
cursor c1 is
street1
from test_data
Begin
If Instr(street1, ‘Cnr’, 1) >= 1;
Then
Newstreetname := Substr(street1, Instr(street1, ‘Cnr’, 1)+3);
Else if
Instr(street1, ‘PO Box’, 1) >= 1;
Then
Newstreetname:= Substr(street1, Instr(street1, ‘PO Box’, 1));
Else if
REGEXP_ Instr (street1, [\d], 1) = 0;
Then
Newstreetname:= street1;
Else if
REGEXP_ Instr (street1, [\d], 1) >= 1;
Then
Newstreetnumber:= regexp_substr(street1, '\d+(\s|\/)(\d+)?-?(\d+)?(\w {1})?');
Newstreetname:= regexp_substr(street1, '(\w+\s\w+)$');
End
You need a SELECT and a semicolon in the cursor definition
You can add a FOR LOOP over the cursor
For example:
You can, alternatively, avoid the explicit cursor definition entirely, e.g.:
Your IF statements cannot include a semicolon – e.g.:
[edit] so you want to update your table, columns
newstreetnumberandnewstreetname– in which case you could do something like this:Note, however, that this will not perform well for large volumes, and I’d prefer to do it all in one UPDATE statement.