You are on page 1of 1

1) source

ID STATE FLAG
10 S1;S2;S3 A
20 S1;S5;S2 B
30 S2 C
40 S1 D
50 S6;S2;S4;S5;S8;S9 E
tsrget
ID STATE FLAG
10 S1 A
10 S2 A
10 S3 A
20 S1 B
20 S2 B
20 S5 B
PROC:
CREATE OR REPLACE PROCEDURE NRMLZ_STATE
AS
CURSOR STAT_CRSR IS
select distinct id,REGEXP_SUBSTR (STATE, '[^;]+', 1, level) as s1,flag
from mult_state
connect by level <= length(regexp_replace(state,'[^;]*'))+1
order by id,s1;
BEGIN FOR i in STAT_CRSR
loop
insert into mult_state_nm
( id,state,flag)
values(
i.id,i.s1,i.flag);
end loop;
commit;
end;

You might also like