回答

收藏

PL / SQL开发人员如何获得插入失败的行?

技术问答 技术问答 441 人阅读 | 0 人回复 | 2023-09-13

我正在做一种插入唯一列表的方法。我不知道是否可以访问导致插入失败的插入值。+ V7 J  W: j% @9 Y/ Z5 r
例如:
- g- V2 S3 O! V9 ztable1(id,name,phone);name is unique.insert (1,a,123);insert (2,a,1234);我想要的是在执行第二次插入操作时返回ID值 1而不再查询。
7 g& q) p6 U; U3 t' u先感谢您。
- A3 q8 u5 r$ Y% H. |0 V! j                                                               
) k" I1 [: q5 Y    解决方案:                                                                9 i- c5 w5 b0 t8 v0 Y
                                                                在oracle 10gr二、你可以用insert命令的log
; {, E/ f& B( S. rerrors将错误记录在单独的表中。* ?* |7 V5 q+ m
SQL> create table test_table( 2     id   number primary key, 3    col1 varchar2(7) 、二、二、二、;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 constraintSQL> insert into test_table(id,col1) 2  (  )select 1,level 3       from dual 4     connect by level  commit;SQL> select * from test_table;        ID COL1---------- -------    SQL> select * from err$_test_table;ORA_ERR_NUMBER$ ORA_ERR_MESG$                                           ORA_ERR_ROWID$  ORA_ERR_OPTYP$ ORA_ERR_TAG$ ID  COL1--------------- ------------------------------------------------------------------------------------------------------------        ORA-00001: unique constraint (HR.SYS_C008315) violated  I                                          2        ORA-00001: unique constraint (HR.SYS_C008315) violated  I                                         3
分享到:
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则