Mega Code Archive

 
Categories / Oracle PLSQL / System Packages
 

ORA-06502

SQL> create table emp (   2  id number(6) ); Table created. SQL> SQL> alter table emp   2  add constraint emp_pk   3  primary key (id); Table altered. SQL> SQL> SQL> create or replace procedure gen_emp is   2   v_new_cid emp.id%type;   3  begin   4   loop   5    begin   6     v_new_cid := round(dbms_random.value(1000000,9999999));   7     insert into emp values (v_new_cid);   8     exit;   9    exception when dup_val_on_index then  10     null;  11    end;  12   end loop;  13  end;  14  / Procedure created. SQL> SQL> set timing on SQL> begin   2   gen_emp;   3   commit;   4  end;   5  / begin * ERROR at line 1: ORA-06502: PL/SQL: numeric or value error: number precision too large ORA-06512: at "RNTSOFT.GEN_EMP", line 6 ORA-06512: at line 2 Elapsed: 00:00:00.07 SQL> SQL> begin   2   for i in 1 .. 100000 loop   3   gen_emp;   4   end loop;   5   commit;   6  end;   7  / begin * ERROR at line 1: ORA-06502: PL/SQL: numeric or value error: number precision too large ORA-06512: at "RNTSOFT.GEN_EMP", line 6 ORA-06512: at line 3 Elapsed: 00:00:00.06 SQL> SQL> set timing off SQL> SQL> drop table emp; Table dropped.