ITPub博客

首页 > 数据库 > Oracle > OGG在插入数据时报ORA-01400

OGG在插入数据时报ORA-01400

原创 Oracle 作者:xueshancheng 时间:2021-08-10 15:59:47 0 删除 编辑

1 查看OGG的状态

REPLICAT    ABENDED     REPCJA10    01:33:01      00:00:08   


2 查看报错信息,发现报ORA-1400,由于不能插入空值到非空的列。

2021-08-08 08:25:10  WARNING OGG-01154  SQL error 1400 mapping SOURCE.TB_A to TARGET.TB_A 

OCI Error ORA-01400: cannot insert NULL into ("TARGET"."TB_A"."ID") (status = 1400). 

INSERT INTO "TARGET"."TB_A" ("ID","COLUMN2","COLUMN3","COLUMN4","COLUMN5","COLUMN6","COLUMN7","COLUMN8") 

VALUES (:a0,:a1,:a2,:a3,:a4,:a5,:a6,:a7,:a8,:a9).                                                         

                                                                                                                                                                                                

2021-08-08 08:25:10  WARNING OGG-01003  Repositioning to rba 95054448 in seqno 84900.                                                                                                           

                                                                                                                                                                                                

Source Context :                                                                                                                                                                                

  SourceModule            : [er.errors]                                                                                                                                                         

  SourceID                : [/scratch/pradshar/view_storage/pradshar_pse_15852019/oggcore/OpenSys/src/app/er/errors.cpp]                                                                        

  SourceFunction          : [take_rep_err_action]                                                                                                                                               

  SourceLine              : [623]                                                                                                                                                               

  ThreadBacktrace         : [8] elements                                                                                                                                                        

                          : [/goldengate/libgglog.so(CMessageContext::AddThreadContext()+0x1e) [0x7fc8cee4471e]]                                                                                

                          : [/goldengate/libgglog.so(CMessageFactory::CreateMessage(CSourceContext*, unsigned int, ...)+0x2cc) [0x7fc8cee3d6bc]]                                                

                          : [/goldengate/libgglog.so(_MSG_ERR_MAP_TO_TANDEM_FAILED(CSourceContext*, ggs::gglib::ggapp::CQualDBObjName<(DBObjType)1> const&, ggs::gglib::ggapp::CQualDBObjName<(D

BObjType)1> const&, CMessageFactory::MessageDisposition)+0x53) [0x7fc8cee39581]]                                                                                                                

                          : [/goldengate/replicat(take_rep_err_action(short, int, char const*, extr_ptr_def*, __std_rec_hdr*, char*, file_def*, bool)+0xdac) [0x521a80]]                        

                          : [/goldengate/replicat(process_extract_loop()+0x2388) [0x53ad18]]                                                                                                    

                          : [/goldengate/replicat(main+0x732) [0x54cbd2]]                                                                                                                       

                          : [/lib64/libc.so.6(__libc_start_main+0xf5) [0x7fc8c92163d5]]                                                                                                         

                          : [/goldengate/replicat(__gxx_personality_v0+0x31a) [0x4c0c6a]]                                                                                                       

                                                                                                                                                                                                

2021-08-08 08:25:10  ERROR   OGG-01296  Error mapping from SOURCE.TB_A to TARGET.TB_A.    


3 查看表的定义,发现源端对应的列ID为可为空

目标端:

 SYS@target3 >desc TARGET.TB_A                                                                                                                                                                             

  Name                          Null?    Type                   

  ----------------------------- -------- -----------------------

  ID                            NOT NULL VARCHAR2(20 CHAR)      

  COLUMN2                                VARCHAR2(8 CHAR)       

  COLUMN3                                VARCHAR2(6 CHAR)       

  COLUMN4                                VARCHAR2(16 CHAR)      

  COLUMN5                       NOT NULL DATE                   

  COLUMN6                                NUMBER(16,2)           

 


源端:

SYS@source1 >desc SOURCE.TB_A                                                                                                                                                                  

 Name                      Null?    Type                

 ------------------------- -------- --------------------

 ID                                         VARCHAR2(20)        

 COLUMN2                            VARCHAR2(8)         

 COLUMN3                            VARCHAR2(6)         

 COLUMN4                            VARCHAR2(16)        

 COLUMN5                   NOT NULL DATE                

 COLUMN6                            NUMBER(16,2)        

 

 

4 查看表创建的索引,发现有主键索引 

alter table SOURCE.TB_A add constraint PK_TB_A primary key (COLUMN7, COLUMN8, COLUMN5)


 INDEX_OWNER        INDEX_NAME    TABLE_OWNER  TABLE_NAME    COLUMN_NAME       STATUS

------------------ ------------- -------------------------- ----------------- --------

SOURCE             PK_TB_A        SOURCE        TB_A        COLUMN5               N/A

SOURCE             PK_TB_A        SOURCE        TB_A        COLUMN7               N/A

SOURCE             PK_TB_A        SOURCE        TB_A        COLUMN8               N/A


5 根据报错信息,到源端查看对应的数据,发现源端对应的列的数据为空值,故认为可以将ID列更改为可为空。

 Mapping problem with insert record (target format)...                                                                                   

 ID =                                                                                                 

 COLUMN2 = 01                           

 COLUMN3 = 61102                   

 COLUMN4 = 614015408                      

 COLUMN5 = 2021-08-06 00:00:00               

 COLUMN6 = 3.73                                               

 COLUMN8 = 3156253766                    

 COLUMN7 = 6130001001937044009851

 

 

 SYS@source1 > select  a.id,a.COLUMN7,a.COLUMN8,a.COLUMN5 from SOURCE.TB_A a 

  2   where  a.COLUMN7 = '6130001001937044009851' and a.COLUMN8 = '3156253766' and a.COLUMN5 = to_date('2021-08-06 00:00:00','yyyy-mm-dd hh24:mi:ss');


ID                   COLUMN7                   COLUMN8          COLUMN5

-------------------- -------------------------------- ---------------- ------------

                     6130001001937044009851           3156253766       06-AUG-21

                     


ID = 

COLUMN2 = 01

COLUMN3 = 61102

COLUMN4 = 614015503

COLUMN5 = 2021-08-06 00:00:00

COLUMN6 = 6.02

COLUMN8 = 3891912490

COLUMN7 = 6130001021837016990412


select  a.id,a.COLUMN7,a.COLUMN8,a.COLUMN5 from SOURCE.TB_A a 

   where  a.COLUMN7 = '6130001021837016990412' and a.COLUMN8 = '3891912490' and a.COLUMN5 = to_date('2021-08-06 00:00:00','yyyy-mm-dd hh24:mi:ss');   

 

 ID                   COLUMN7                   COLUMN8          COLUMN5

-------------------- -------------------------------- ---------------- ------------

                     6130001021837016990412           3891912490       06-AUG-21

   

ID = 

COLUMN2 = 01

COLUMN3 = 61102

COLUMN4 = 614024617

COLUMN5 = 2021-08-06 00:00:00

COLUMN6 = 12.58

COLUMN8 = 3914018563

COLUMN7 = 6130001001937022530278


 select  a.id,a.COLUMN7,a.COLUMN8,a.COLUMN5 from SOURCE.TB_A a 

   where  a.COLUMN7 = '6130001001937022530278' and a.COLUMN8 = '3914018563' and a.COLUMN5 = to_date('2021-08-06 00:00:00','yyyy-mm-dd hh24:mi:ss');  

   

 ID                   COLUMN7                   COLUMN8          COLUMN5

-------------------- -------------------------------- ---------------- ------------

                     6130001001937022530278           3914018563       06-AUG-21

5 修改表的ID列为可为空


 alter table TARGET.TB_A modify id null;     

 

6 启动OGG进程,进程恢复正常

                                


来自 “ ITPUB博客 ” ,链接:https://blog.itpub.net/69996316/viewspace-2786228/ ,如需转载,请注明出处,否则将追究法律责任。

下一篇: delete数据特别慢
请登录后发表评论 登录
全部评论
本人目前就职于北京海天起点技术服务股份有限公司,从事Oracle数据库有十几年了,对Oracle及goldengate比较精通。

注册时间:2021-03-11

  • 博文量
    60
  • 访问量
    68949