PL/SQL Block to loop through a list of comma separated values

This Oracle PL/SQL Block will insert a comma-separated value to a table.


set serveroutput on

DECLARE
 vcntrycd_list VARCHAR2(100)  := 'ABC,DEFG,HIJKLM,NO';
 vcntrycd   VARCHAR2(10);
 vpos NUMBER;

BEGIN        

 vpos:=INSTR(vcntrycd_list,',',1,1);
 vcntrycd := SUBSTR(vcntrycd_list,1,vpos-1);
 DBMS_OUTPUT.PUT_LINE('Country Code : '||vcntrycd);
 vcntrycd_list := SUBSTR(vcntrycd_list,vpos+1);
  
 WHILE vcntrycd IS NOT NULL
 LOOP
 insert into country
   ( country_code)
 values
   ( vcntrycd    );

 vpos:=INSTR(vcntrycd_list,',',1,1);
 vcntrycd := SUBSTR(vcntrycd_list,1,vpos-1);
 DBMS_OUTPUT.PUT_LINE('Country Code : '||vcntrycd);
 vcntrycd_list := SUBSTR(vcntrycd_list,vpos+1);
END LOOP;
COMMIT;

EXCEPTION
WHEN OTHERS THEN
 DBMS_OUTPUT.PUT_LINE(SQLERRM(SQLCODE));
 rollback; 
END;
/

No comments:

Post a Comment

ASM and Database does not auto start in Oracle restart environment (After Server start)

 If you are supporting Any Oracle restart environment and if you notice that your ASM instance and Database instance does not start automati...