Oracle FAQ | Your Portal to the Oracle Knowledge Grid |
Home -> Community -> Usenet -> c.d.o.server -> pl/sql coding help
Hi All:
Does anyone have any examples of trapping the ORA-01405 error and just continuing after the error happens. This procedure runs in batch and when I get a no rows found the procedure exits. Below is the code:
Create or replace procedure updtlog as
--
LOCID VARCHAR2(50); COMPANY VARCHAR2(100); FNAME VARCHAR2(50); LNAME VARCHAR2(50); ACCOUNT_ID VARCHAR2(50); CONTACT_ID VARCHAR2(15); POSTN_ID VARCHAR2(15); POS_NAME VARCHAR2(50); EMP_ID VARCHAR2(15); NEW_LOGIN VARCHAR2(50); cursor c1 is select tmp_locid, tmp_co_name, tmp_fname, tmp_lname from siebel.tmp_ems_load where exists(select a.pr_postn_id from s_org_ext a, s_emp_postn b where a.loc = tmp_locid and a.pr_postn_id = b.position_id); CURSOR C2 IS SELECT PR_POSTN_ID FROM S_ORG_EXT WHERE locid = LOC;
BEGIN
dbms_output.put_line('TOP......');
open c1;
loop
dbms_output.put_line('AFTER LOOP1 ');
fetch c1 into locid,company,fname,lname;
exit when c1 %NOTFOUND;
dbms_output.put_line('FILE ==> '||LOCID); dbms_output.put_line('FILE ==> '||COMPANY); dbms_output.put_line('FILE ==> '||FNAME); dbms_output.put_line('FILE ==> '||LNAME); open c2; fetch c2 into postn_id;
SELECT login into new_login FROM SIEBEL.S_EMP_POSTN emp, SIEBEL.S_EMPLOYEE e, SIEBEL.S_POSTN p WHERE emp.POSITION_ID = POSTN_ID AND emp.EMP_ID = E.ROW_ID AND emp.POSITION_ID = p.ROW_ID AND (p.NAME LIKE 'N0%' or p.name like 'S0%' or p.name like 'W0%') and e.login != 'SADMIN' and rownum < 2; update tmp_ems_load set login = new_login where tmp_locid = locid; commit;
close c2;
dbms_output.put_line('BOTTOM LOOP2');
cnt := cnt + 1;
end loop;
dbms_output.put_line('TOTAL RECORDS UPDATED: ' ||cnt);
close c1;
--EXCEPTION
thanks in advance for any help here
eddie lufker
Received on Wed Feb 10 1999 - 18:22:41 CST