文章详情

短信预约-IT技能 免费直播动态提醒

请输入下面的图形验证码

提交验证

短信预约提醒成功

怎么解决数据库ora-600异常

2024-04-02 19:55

关注

本篇内容介绍了“怎么解决数据库ora-600异常”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!

一,问题描述

用户反馈,执行一段SQL时,出现ora-600的异常。

create or replace view grp_cust_ucs_v as

select distinct

       a.CUST_ID,

       a.CUST_NAME,

       b.service_id,

       b.list_system_id,

       a.CUST_ADDR,

       decode(a.CUST_TYPE,'01','大客','02','中小','03','公众','04','校园','未知')CUST_TYPE,

       a.CARD_TYPE,

       a.CRAD_NO,

       a.EPARCHY_CODE,

       a.CITY_CODE,

       a.SCORE_VALUE,

       a.CREDIT_CLASS,

       a.BASIC_CREDIT_VALUE,

       a.CREDIT_VALUE,

       a.DEVELOP_DEPART_ID,

       f_develop_staff_tonumber(a.CUST_ID) DEVELOP_STAFF_ID,

       a.IN_DEPART_ID,

       a.IN_STAFF_ID,

       a.IN_DATE,

       a.REMOVE_FLAG,

       a.REMOVE_DATE,

       a.REMOVE_STAFF_ID,

       a.REMOVE_CHANGE,

       a.UPDATE_TIME,

       a.UPDATE_STAFF_ID,

       a.UPDATE_DEPART_ID,

       b.ACTIVE_TIME,

       b.active_man,

       case

            when b.cust_id is null then '10'

            when b.cust_id is not null then '11'

       end  as CUST_STATUS,

       b.if_valid,

       b.sync_status,

       b.inactive_time,

       b.inactive_man,

       a.new_cust_type,

       (select b2.SYSTEM_USER_NAME||'('||b2.SYSTEM_USER_CODE||')' from grp_distribute_cust_manager b1,v_system_user b2

        where b1.cust_id=a.cust_id and b1.status=10 and b1.manager_id=b2.SYSTEM_USER_ID)accept_man,

       (select b2.SYSTEM_USER_NAME||'('||b2.SYSTEM_USER_CODE||')' from grp_distribute_cust_manager b1,v_system_user b2

        where b1.cust_id=a.cust_id and b1.status=10 and b1.send_user=b2.SYSTEM_USER_ID)send_man,

       (select to_char(b1.send_date,'yyyy/mm/dd') from grp_distribute_cust_manager b1

        where b1.cust_id=a.cust_id and b1.status=10)send_date,

       (select b1.manager_id from grp_distribute_cust_manager b1

        where b1.cust_id=a.cust_id and b1.status=10)accept_man_id

  from GRP_BMS_CUST_INFO a,GRP_CUST_UCS_T b

 where a.cust_id = b.cust_id(+)

   and b.if_valid(+) = '10';

二、问题解决

这是oracle的一个bug,在10.2.0.5.4和以后版本已经解决了,当大表hash join关联或者大表执行hash group by就有可能出现上述的ora-600 [kcblasm_1], [103], [], [], [], [], [], []问题。

可以选择规避掉hash join执行计划或者hash group by的执行计划来避开相应sql引起的错误,我们可以在执行这个sql语句之前:

alter session set “_hash_group_enabled”=false 禁掉hash join连接方式,或者sql语句里面使用hint no_use_hash。

alter session set “_gby_hash_aggregation_enabled”=falase 禁掉hash group by执行路径

Oralce给出的最快捷的方式是直接打patch到10.2.0.5.4或者以上版本,也可以选择在linux和unix平台打patch 7612454去解决这个问题,而windows下需要下载patch 3或者以上版本来解决这个问题。

在这里,我们选择在sql语句里面使用hint no_use_hash,问题得到解决。

“怎么解决数据库ora-600异常”的内容就介绍到这里了,感谢大家的阅读。如果想了解更多行业相关的知识可以关注亿速云网站,小编将为大家输出更多高质量的实用文章!

阅读原文内容投诉

免责声明:

① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。

② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341

软考中级精品资料免费领

  • 历年真题答案解析
  • 备考技巧名师总结
  • 高频考点精准押题
  • 2024年上半年信息系统项目管理师第二批次真题及答案解析(完整版)

    难度     813人已做
    查看
  • 【考后总结】2024年5月26日信息系统项目管理师第2批次考情分析

    难度     354人已做
    查看
  • 【考后总结】2024年5月25日信息系统项目管理师第1批次考情分析

    难度     318人已做
    查看
  • 2024年上半年软考高项第一、二批次真题考点汇总(完整版)

    难度     435人已做
    查看
  • 2024年上半年系统架构设计师考试综合知识真题

    难度     224人已做
    查看

相关文章

发现更多好内容

猜你喜欢

AI推送时光机
位置:首页-资讯-数据库
咦!没有更多了?去看看其它编程学习网 内容吧
首页课程
资料下载
问答资讯