基本要素

有渠道反馈,HIS软件在对数据进行保存的时候,提示ora-600错误,具体的错误信息如下:

[Microsoft][ODBC driver forOracle][Oracle]ORA-20999: ORA-00600: 内部错误代码, 参数:[kcbz_check_objd_typ], [0], [0], [1], [], [], [], [], [], [], [], []

ORA-06512: 在"ZLHIS.ZL_ERRORCENTER", line 73

ORA-06512: 在 "ZLHIS.ZL_病人XX打印_UPDATE",line 231

ORA-06512: 在 line 1

该错误无法跳过,导致业务无法正常运行。

问题分析

步骤一:按提示分析‘存储过程’

按理这个提示还是比较明确,根据经验判断可能是ZL_病人XX打印_UPDATE可能有问题,结合ORA-06512错误,尝试重建该过程和同义词,执行了以上操作问题依旧。

步骤二:分析ora-600错误

接着分析下ORA-600[kcbz_check_objd_typ]错误,该错误按照百度上的解释是由于Oracle在检查内存中的数据块时,发现数据块上的对象号是错误的,抛出该错误提示,进一步分析问题,发现是在访问【病人XX打印】表的时候抛出的错误,我们单独对该表进行分析,我们对该表进行全表查询的时候,提示ora-08103错误,但是如果只查询部分表,则查询正常。

但是其实该对象是存在的,如下:

我们再对该表的结构进行排查,发现该表的索引都是BIN$类似的名称,证明该表是通过闪回方式进行了恢复操作,这里我们终于定位了问题的所在。

问题产生的根本原因就是因为操作员误操作,对病人护理打印表进行了drop操作,然后用闪回方式进行了恢复,但是因为某些原因,可能导致数据恢复了,但是数据库字典表相关内容出现了错误(或者叫不匹配),这样就导致数据库对该表做任何操作,都会提示错误,如我们对ZLHIS用户进行统计信息收集,同样会得到如下提示:

解决过程

步骤一:对错误表重命名,新建一张同名的表

通过rename操作,对【病人XX打印】表进行重命名,然后重新建一张【病人XX打印】表,通过插入语句,将数据插入新的表中,这里我们要注意,因为旧表访问有问题,因此我们得用循环插入的方式操作,如下:

l  重命名表

rename 病人XX打印 to病人XX打印_原始

l  先创建一张新表

create table病人XX打印 as select * from病人XX打印_原始 where 1=2

/

步骤二:通过过程将原始表的数据插入到新表中

在插入的时候,我们无法通过全表扫描访问访问原始表,但是幸运的时候,可以通过全表访问ROWID,我们就创建一张表保持原始表的ROWID,然后通过匹配ROWID逐条插入到新表中,如下

l  先创建一张保存rowid的表

create table病人XX打印_rowid asselect rowed from病人XX打印_原始

l  过程逐条插入

begin
  for cursor_rowid in (select rrowid  from 病人XX打印_rowid)loop
  begin
    insert into 病人XX打印  select *from 病人XX打印_原始 where rowid=CHARTOROWID(cursir_rowid.rrowid);
    commit;
end;
end loop;
end;
/

通过以上操作,最后有接近30条记录无法转移到新表,不过不影响使用。

ora-600[kcbz_check_objd_typ]错误处理相关推荐

  1. oracle创建orcl失败,prcr-1079:failed to start resource ora.orcl.db错误的解决办法

    使用DBCA创建数据库,到90%多的时候就报错 prcr-1079:failed to start resource ora.orcl.db CRS-2674:start of 'ora.orcl.d ...

  2. ORA 各种oraclesql错误

    ORA-00001: 违反唯一约束条件 (.)  ORA-00017: 请求会话以设置跟踪事件  ORA-00018: 超出最大会话数  ORA-00019: 超出最大会话许可数  ORA-00020 ...

  3. 2011年2月15日到福州

    2011年2月15日到福州,到今天为止已经两天的时间了,问题整理下: 1.广西datastage安装,由于服务器中/ETC/HOST文件,主机名和IP地址对应错误问题,导致datastage无法编译, ...

  4. ORACLE全部ORA错误收集整理

    有时数据库出现问题,不是每次都有网络可查,所以把所有的ora系列的错误整理出来, 在最没有办法的时候,需要自己来解决,有了这些根据,问题会好办的.虽说对于数据库方面, DBA很强大,他们在遇到错误时, ...

  5. oracle错误15260,【案例】Oracle报错ORA-00600 2663 产生的原因和解决办法

    天萃荷净 运维DBA反映Oracle数据库恢复时遇到ORA-00600 2663,通过结合MOS分析该ora 600错误,分析原因为SCN异常导致. 联系:手机(+86 13429648788) QQ ...

  6. ORA-600(qerltcInsertSelectRop_bad_state)错误

    来源于: http://blog.itpub.net/22458783/viewspace-615501/ 这是碰到的第一个11.2上的bug,在利用IGNORE_ROW_ON_DUPKEY_INDE ...

  7. 错误诊断:索引数据错误导致ORA-00600 [kdsgrp1]处理

    墨墨导读:客户反应一套数据库alert日志报ORA-00600 [kdsgrp1],需要定位问题原因. 问题分析 alert日志报错如下: Errors in file /home/app/oracl ...

  8. ORA-00600错误一例

    ORA-00600错误一例,一个SQL运行时报ORA-00600的错误. 英文错误信息: ORA-00600: internal error code, arguments: [qkeAddDepen ...

  9. 新员工培训环境准备中,碰见的两个ORA-600错误

    下周要为新员工介绍Oracle数据库,为了让课程更接地气,准备了虚拟机环境,用于实验和练习,在此过程中出现了两个ORA-600的错误,偶然中又有必然,记录于此. 操作过程: 1. 我在MAC上创建完成 ...

最新文章

  1. 哇 跨行竞争 Python竟能替代PS完成海报设计
  2. python antlr_使用ANTLR在5分钟内用Java解析任何语言:例如Python
  3. 位姿估计的来龙去脉——内外参,三维重建,Pnp问题
  4. Python语法糖之:列表解析、集合解析和字典解析
  5. 【Flink】Flink 状态恢复报错 StateMigrationException For heap backendsthe new state serializer must not be
  6. while方法判断回文数的两种方式以及使用String 的reverse方法
  7. JavaWeb项目自动部署,持续集成
  8. Doom启示录(三)------李乃峰所崇拜之 两个约翰!
  9. 【SVN】解决SVN安装语言包后无法选择中文的问题
  10. Power Analysis估算样本容量
  11. 题解 P1894 【[USACO4.2]完美的牛栏The Perfect Stall】
  12. ArcGIS晕渲图的制作(解决山体阴影问题——平坦地区凸点过于突出)
  13. (疯狂的石头)阿弥陀佛,上帝保佑铃声 (疯狂的石头)阿弥陀...
  14. 甲A十年十大悲情时刻回顾 谁的眼泪在空中飞舞?
  15. 云免流usb共享电脑_云免流usb共享电脑
  16. 面试 Redis 没底?这 40 道面试题让你不再慌(附答案)
  17. MAC OS 10个技巧让你秒变MAC达人
  18. U盘用作启动盘后空间变为原来的一半
  19. 微信小程序开发 | API应用案例(下)
  20. 仓库和门店移动出入库 手持移动终端 pda 扫描打印于一身 扫描打印小票和不干胶标签纸

热门文章

  1. 十一月英语——English In Novermber
  2. CUDA 深入浅出谈[转]
  3. 计算机视觉 马尔_基于视觉AI的智能车牌识别相机,识别更精准功能更强大
  4. 东北大学 计算机学院 转专业,东北大学可以转专业吗 东北大学新生转专业政策...
  5. R语言 一元正态分布参数最大似然估计
  6. 惠鑫云安全稳定为什么说澳元是高息钱银?高息钱银有哪些
  7. OpenJudge 方便记忆的电话号码
  8. 达人评测 酷睿i7 1195g7 和奔腾n6000选哪个
  9. 车机串口连接GND、RXD、TXD说明
  10. QQ txd文件解析完毕