码迷,mamicode.com
首页 > 系统相关 > 详细

OGG再次遇到虚拟列无法处理,导致进程abend二

时间:2020-12-30 11:23:40      阅读:0      评论:0      收藏:0      [点我收藏+]

标签:span   链接   tps   目标   col   table   stat   red   直接   

之前遇到一次虚拟列无法insert 如下链接处理

https://www.cnblogs.com/lvcha001/p/12928811.html

本次再次遇到这个问题,OGG版本Version 12.2.0.1 DB版本11.2.0.4  使用ogg_adapter 转换为SQL语句直接执行

 

报错信息

Exception in thread "main" oracle.goldengate.util.GGException: Unable to commit transaction, STATUS=ABEND, java.sql.SQLException: ORA-06550: 第 1 行, 第 442 列: 
PL/SQL: ORA-00904: "SYS_NC0033$": 标识符无效
ORA-06550: 第 1 行, 第 7 列: 
PL/SQL: SQL Statement ignored

看到SYS_NCXXX$ 列,可以得到是虚拟列的信息! 什么是虚拟列? 对表创建函数索引,Oracle内置会自动创建一个虚拟列,使用OGG同步无法处理会报错,OGG认为虚拟列也是一个字段!!!需要进行处置
参考上述链接,无法处理这个问题!

使用源端cols不包含虚拟列捕获,目标端COLMAP 参数,排除虚拟列,无法取得效果!

处理

目标端新增一个字段-及虚拟列名称
让其一一对应!
alter table xx add
SYS_NC0033$ varchar2(500);

 

OGG再次遇到虚拟列无法处理,导致进程abend二

标签:span   链接   tps   目标   col   table   stat   red   直接   

原文地址:https://www.cnblogs.com/lvcha001/p/14189181.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!