sqlerrm(sql%bulk_exceptions(i).error_code) : SQLERRM « PL SQL « Oracle PL / SQL






sqlerrm(sql%bulk_exceptions(i).error_code)

    

SQL> create table myTable (
  2   x number not null );

Table created.

SQL>
SQL> set serverout on
SQL> declare
  2   type numlist is table of number
  3   index by binary_integer;
  4   n numlist;
  5   begin
  6       for i in 1 .. 50 loop
  7           n(i) := i;
  8       end loop;
  9
 10       n(37) := null; -- will cause a problem
 11
 12       forall i in 1 .. 50 save exceptions
 13       insert into myTable values (n(i));
 14
 15       exception when others then
 16       dbms_output.put_line('Errors:'||sql%bulk_exceptions.count);
 17       for i in 1 .. sql%bulk_exceptions.count loop
 18           dbms_output.put_line('index:'||sql%bulk_exceptions(i).error_index);
 19           dbms_output.put_line('code:'||sql%bulk_exceptions(i).error_code);
 20           dbms_output.put_line('message:');
 21           dbms_output.put_line(sqlerrm(sql%bulk_exceptions(i).error_code));
 22       end loop;
 23   end;
 24  /
Errors:1
index:37
code:1400
message:
-1400: non-ORACLE exception

PL/SQL procedure successfully completed.

SQL>
SQL>
SQL> drop table myTable;

Table dropped.

   
    
    
    
  








Related examples in the same category

1.SQLERRM function.
2.SQLERRM function returns the error message associated with the most recently raised error exception
3.Error code and message
4.Error code: sql%bulk_exceptions(i).error_code
5.Trim the error message and then output
6.SQLERRM has the error message
7.Reference sql%bulk_exceptions(i).error_index