Oracle
 sql >> база данни >  >> RDS >> Oracle

PL/SQL разработчик как да получи реда, който е направил вмъкването неуспешно?

От oracle 10g r2 можете да използвате регистрационни грешки клауза на вмъкване команда за регистриране на грешки в отделна таблица. Ето един пример:

SQL> create table test_table(
  2    id   number primary key,
  3    col1 varchar2(7)
  4  )
  5  ;

Table created


-- creates a table for logging errors (table name will be prefaced with err$_)
SQL> begin dbms_errlog.create_error_log('TEST_TABLE'); end;
  2  /

PL/SQL procedure successfully completed

-- violates primary key constraint
SQL> insert into test_table(id, col1)
  2  (  select 1, level
  3      from dual
  4    connect by level <= 3)
  5    log errors reject limit unlimited;

1 row inserted

SQL> commit;

SQL> select * from test_table;

        ID COL1
---------- -------
         1 1


SQL> select * from err$_test_table;

ORA_ERR_NUMBER$ ORA_ERR_MESG$                                           ORA_ERR_ROWID$  ORA_ERR_OPTYP$ ORA_ERR_TAG$ ID  COL1
--------------- ------------------------------------------------------------------------------------------------------------
              1 ORA-00001: unique constraint (HR.SYS_C008315) violated  I                                            1     2
              1 ORA-00001: unique constraint (HR.SYS_C008315) violated  I                                            1     3


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Oracle PLSQL еквивалент на ASCISTR(N'str')

  2. Вземете BLOB от база данни, как да ги върнете обратно

  3. Итериране на колона в PL/SQL

  4. PL/SQL (Как да изчислим първия и последния ден на всяко тримесечие на всяка година)

  5. Oracle заявка за съвпадение на всички стойности в списъка сред всички редове в таблицата