热门标签 | HotTags
当前位置:  开发笔记 > 开放平台 > 正文

ORA-600[kcbz_check_objd_typ]错误处理

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

有渠道反馈,HIS软件在对数据进行保存的时候,提示ORA-600错误,具体的错误信息如下:[Microsoft][ODBC driver forOracle][Oracl

基本要素
有渠道反馈,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错误,但是如果只查询部分表,则查询正常。

ORA-600[kcbz_check_objd_typ]错误处理

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

ORA-600[kcbz_check_objd_typ]错误处理

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

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

ORA-600[kcbz_check_objd_typ]错误处理

解决过程
步骤一:对错误表重命名,新建一张同名的表
通过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条记录无法转移到新表,,不过不影响使用。

本文永久更新链接地址

推荐阅读
  • PHP 编程疑难解析与知识点汇总
    本文详细解答了 PHP 编程中的常见问题,并提供了丰富的代码示例和解决方案,帮助开发者更好地理解和应用 PHP 知识。 ... [详细]
  • 本文将介绍如何编写一些有趣的VBScript脚本,这些脚本可以在朋友之间进行无害的恶作剧。通过简单的代码示例,帮助您了解VBScript的基本语法和功能。 ... [详细]
  • 在Windows系统上安装VMware Workstation 2022的详细步骤
    本文将详细介绍如何在Windows系统上安装VMware Workstation 2022。包括从官方网站下载软件、选择合适的版本以及安装过程中的关键步骤。此外,还将提供一些激活密钥供参考。 ... [详细]
  • 360SRC安全应急响应:从漏洞提交到修复的全过程
    本文详细介绍了360SRC平台处理一起关键安全事件的过程,涵盖从漏洞提交、验证、排查到最终修复的各个环节。通过这一案例,展示了360在安全应急响应方面的专业能力和严谨态度。 ... [详细]
  • 本文详细介绍了如何构建一个高效的UI管理系统,集中处理UI页面的打开、关闭、层级管理和页面跳转等问题。通过UIManager统一管理外部切换逻辑,实现功能逻辑分散化和代码复用,支持多人协作开发。 ... [详细]
  • 本文详细探讨了HTTP 500内部服务器错误的成因、解决方案及其在Web开发中的影响。通过对具体案例的分析,帮助读者理解并解决此类问题。 ... [详细]
  • 在维护公司项目时,发现按下手机的某个物理按键后会激活相应的服务,并在屏幕上模拟点击特定坐标点。本文详细介绍了如何使用ADB Shell Input命令来模拟各种输入事件,包括滑动、按键和点击等。 ... [详细]
  • 百度服务再次遭遇技术问题,疑似DNS解析故障
    近日晚间,百度多项在线服务出现加载异常,包括移动端搜索在内的多个功能受到影响。初步迹象表明,问题可能与DNS服务器解析有关。 ... [详细]
  • 自媒体创作必备工具与软件推荐
    本文将详细介绍自媒体创作者所需的各类工具和软件,包括视频制作、剪辑、发布平台管理等方面的专业建议。 ... [详细]
  • 探讨如何使用工具或方法来自定义百度网盘的提取码,以提高文件分享的安全性和便捷性。 ... [详细]
  • 摘要:为了解决下载速度慢的问题,本文介绍了一种高效的下载方法,并提供了详细的步骤和工具推荐。通过使用百度网盘分享功能,可以显著提高文件传输效率。 ... [详细]
  • 根据最新发布的《互联网人才趋势报告》,尽管大量IT从业者已转向Python开发,但随着人工智能和大数据领域的迅猛发展,仍存在巨大的人才缺口。本文将详细介绍如何使用Python编写一个简单的爬虫程序,并提供完整的代码示例。 ... [详细]
  • 通过与阿里云的合作,牛客网成功解决了跨国视频面试中的网络卡顿问题,为求职者和面试官提供了更加流畅的沟通体验。 ... [详细]
  • 本文探讨了如何在 PHP 的 Eloquent ORM 中实现数据表之间的关联查询,并通过具体示例详细解释了如何将关联数据嵌入到查询结果中。这不仅提高了数据查询的效率,还简化了代码逻辑。 ... [详细]
  • 揭秘:为何我的网名是老紫竹
    本文详细解释了作者为何选择“老紫竹”作为网名,从个人喜好到网络经历,以及与紫竹植物的渊源。 ... [详细]
author-avatar
乐思GO_361
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有