OGG-01296 报映射表错误。查看原因是说有null值插入主键,大神解答下。人在可马上给分

Mricoo_周 2018-02-09 08:15:39
WARNING OGG-00869:OCI Error ORA-01400: cannot insert NULL into ("F4ERP"."BILL_RETAIL"."P0670_ID") (status = 1400)
ERROR OGG-01296:Error mapping from F4ERP.BILL_RETAIL to F4ERP.BILL_RETAIL.
确定源端的数据没有空值,为什么插入的时候会报这个错。麻烦谁解答下
...全文
2084 9 打赏 收藏 转发到动态 举报
写回复
用AI写文章
9 条回复
切换为时间正序
请发表友善的回复…
发表回复
Mricoo_周 2018-02-11
  • 打赏
  • 举报
回复
引用 7 楼 liuzhijian2008x 的回复:
"F4ERP"."BILL_RETAIL"."P0670_ID" 我看报错是F4ERP用户的BILL_RETAIL表的P0670_ID 这个字段有空值啊。 你OGG配置里面配置的是ods.bill_retail_zzl 这个表啊。 检查下是否源端和目标端 "F4ERP"."BILL_RETAIL"."P0670_ID" 上面都有非空约束吧。 update操作的语句也发下?
ods.bill_retail_zzl 这是我后来建的测试表,现在名字都改过来了,都是f4erp.bill_retail,目标跟源端都有非空约束都有,update语句很简单 update f4erp.bill_retail t set t.charger='成功!' where t.p0670_id=206550996386,这个ID在目标跟源端都是存在的,但是目标端解析出来就报不能插入null值错误
Mricoo_周 2018-02-11
  • 打赏
  • 举报
回复
谢谢 liuzhijian2008x 大佬的点播,原来是dg备库追加日志未开启的缘故
liu志坚 2018-02-10
  • 打赏
  • 举报
回复
1、"F4ERP"."BILL_RETAIL" 这个表是否开启了追加日志? 2、 是否做了DDL同步,做了DDL同步的话,这个表表结构如果有改动,需要表结构修改同步过去后重启源端和目标端OGG进程,再对该表进程的事务处理才不会有问题(OGG对DDL支持得不是太好)
卖水果的net 2018-02-10
  • 打赏
  • 举报
回复
不懂 OGG,是否可以把目标端的 "F4ERP"."BILL_RETAIL"."P0670_ID" , 这列的属性改成可空,看看传来的数据是什么
imcmuc 2018-02-10
  • 打赏
  • 举报
回复
可以贴一下执行的SQL
liu志坚 2018-02-10
  • 打赏
  • 举报
回复
"F4ERP"."BILL_RETAIL"."P0670_ID" 我看报错是F4ERP用户的BILL_RETAIL表的P0670_ID 这个字段有空值啊。 你OGG配置里面配置的是ods.bill_retail_zzl 这个表啊。 检查下是否源端和目标端 "F4ERP"."BILL_RETAIL"."P0670_ID" 上面都有非空约束吧。 update操作的语句也发下?
Mricoo_周 2018-02-10
  • 打赏
  • 举报
回复
引用 2 楼 wmxcn2000 的回复:
不懂 OGG,是否可以把目标端的 "F4ERP"."BILL_RETAIL"."P0670_ID" , 这列的属性改成可空,看看传来的数据是什么
我源端更新了一条数据,这条数据在目标端是有的,但是就报insert null错
Mricoo_周 2018-02-10
  • 打赏
  • 举报
回复
一、einig03 extract einig03 setenv (ORACLE_SID=orcl) setenv (NLS_LANG=AMERICAN_AMERICA.ZHS16GBK) userid ogg,password ogg rmthost 10.3.11.11,mgrport 7809 rmttask replicat,group rinig03 table ods.bill_retail_zzl; 二、eora_hr extract eora_hr setenv (ORACLE_SID=orcl) setenv (ORACLE_HOME="C:\app\product\11.2.0\dbhome_1") setenv (NLS_LANG=AMERICAN_AMERICA.ZHS16GBK) userid ogg,password ogg exttrail E:\ogg\dirdat\hr DISCARDFILE E:\ogg\dirrpt\eora_hr1.dsc,APPEND,MEGABYTES 512 TRANLOGOPTIONS MINEFROMACTIVEDG --DBOPTIONS ALLOWUNUSEDCOLUMN --TRANLOGOPTIONS DBLOGREADER --FETCHOPTIONS, USESNAPSHOT, NOUSELATESTVERSION, MISSINGROW REPORT FETCHOPTIONS FETCHPKUPDATECOLS STATOPTIONS REPORTFETCH --table f4erp.bill_retail; table ods.bill_retail_zzl; 三、pora_hr (抽取) extract pora_hr setenv (ORACLE_SID=orcl) setenv (ORACLE_HOME=C:\app\product\11.2.0\dbhome_1) setenv (NLS_LANG=AMERICAN_AMERICA.ZHS16GBK) passthru rmthost 10.3.11.11,mgrport 7809 rmttrail D:\gg\dirdat\pa table ods.bill_retail_zzl; 四、rinig03 replicat rinig03 setenv (ORACLE_SID=ORCL) setenv (ORACLE_HOME=D:\app\product\11.2.0\dbhome_1) setenv (NLS_LANG=AMERICAN_AMERICA.ZHS16GBK) assumetargetdefs userid ogg,password ogg discardfile D:\gg\rinig03.dsc,purge map ods.bill_retail_zzl,target ods.bill_retail_zzl; 五、rora_hr replicat rora_hr setenv (ORACLE_SID=ORCL) setenv (ORACLE_HOME= D:\app\product\11.2.0\dbhome_1) setenv (NLS_LANG=AMERICAN_AMERICA.ZHS16GBK) userid ogg,password ogg --handlecollisions assumetargetdefs discardfile D:\gg\dirrpt\rora_hr.dsc,purge map ods.bill_retail_zzl ,target ods.bill_retail_zzl; 这是所有的代码
Mricoo_周 2018-02-10
  • 打赏
  • 举报
回复
引用 3 楼 liuzhijian2008x 的回复:
1、"F4ERP"."BILL_RETAIL" 这个表是否开启了追加日志? 2、 是否做了DDL同步,做了DDL同步的话,这个表表结构如果有改动,需要表结构修改同步过去后重启源端和目标端OGG进程,再对该表进程的事务处理才不会有问题(OGG对DDL支持得不是太好)
1、追加日志的话数据库已经开了,我在源端也add trandata F4ERP.BILL_RETAIL过了 2、只有DML操作 现在的环境是目标跟源端 数据量全一致,然后我在源端更新了一条数据 现在的问题是 ①replicat端 我加上handlecollisions参数 就报insert null错 ②把replicat端 handlecollisions参数备注掉,就报找不到no data found错(目标端更新的那条数据是有的) 我已经在源端加了FETCHOPTIONS FETCHPKUPDATECOLS参数。 真的不知道啥原因

3,491

社区成员

发帖
与我相关
我的任务
社区描述
Oracle 高级技术相关讨论专区
社区管理员
  • 高级技术社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧