Chinaunix首页 | 论坛 | 博客
  • 博客访问: 558374
  • 博文数量: 126
  • 博客积分: 8010
  • 博客等级: 中将
  • 技术积分: 1112
  • 用 户 组: 普通用户
  • 注册时间: 2007-06-22 11:41
文章分类
文章存档

2010年(1)

2009年(5)

2008年(66)

2007年(54)

我的朋友

分类: Oracle

2008-02-28 10:05:16

1.通过TRC文件,发现是执行以下语句.使用下面的SQL语句,看会不会报错
conn internal/oracle
 
SELECT "DRUG_PRESC_MASTER"."PRESC_NO",            "DRUG_PRESC_MASTER"."DISPENSARY",            "DRUG_PRESC_MASTER"."PATIENT_ID",            "DRUG_PRESC_MASTER"."VISIT_ID",            "DRUG_PRESC_MASTER"."NAME",            "DRUG_PRESC_MASTER"."NAME_PHONETIC",            "DRUG_PRESC_MASTER"."BABY_NO",            "DRUG_PRESC_MASTER"."SEX",            "DRUG_PRESC_MASTER"."AGE",            "DRUG_PRESC_MASTER"."IDENTITY",            "DRUG_PRESC_MASTER"."CHARGE_TYPE",            "DRUG_PRESC_MASTER"."UNIT_IN_CONTRACT",            "DRUG_PRESC_MASTER"."PRESC_TYPE",            "DRUG_PRESC_MASTER"."PRESC_SOURCE",            "DRUG_PRESC_MASTER"."REPETITION",            "DRUG_PRESC_MASTER"."COUNT_PER_REPETITION",            "DRUG_PRESC_MASTER"."COSTS",            "DRUG_PRESC_MASTER"."PAYMENTS",            "DRUG_PRESC_MASTER"."ORDERED_BY",            "DRUG_PRESC_MASTER"."PRESCRIBER",            "DRUG_PRESC_MASTER"."ENTERED_BY",            "DRUG_PRESC_MASTER"."ENTERED_DATETIME",            Upper( "DRUG_PRESC_MASTER"."DISPENSING_PROVIDER") dispensing_provider,            "DRUG_PRESC_MASTER"."DISPENSING_DATETIME",            "DRUG_PRESC_MASTER"."MEMO",            "DRUG_PRESC_MASTER"."RETURN_INDICATOR",            "DRUG_PRESC_MASTER"."RCPT_NO",            "DRUG_PRESC_MASTER"."RETURN_PRESC_NO"    
 FROM "DRUG_PRESC_MASTER"     WHERE "DRUG_PRESC_MASTER"."DISPENSARY" = '430301'     AND ((DRUG_PRESC_MASTER.DISPENSING_PROVIDER = 'YFB') or (DRUG_PRESC_MASTER.DISPENSING_PROVIDER = 'yfb')) AND (DRUG_PRESC_MASTER.DISPENSING_DATETIME >= TO_DATE('2008-02-15 00:00','YYYY-MM-DD HH24:MI')) AND (DRUG_PRESC_MASTER.DISPENSING_DATETIME <= TO_DATE('2008-02-15 23:59','YYYY-MM-DD HH24:MI')) AND (RETURN_INDICATOR<>1 OR RETURN_INDICATOR IS NULL);

2.如果不报错。 执行下面的分析语句,也没有报任何错误。
    ANALYZE TABLE pharmacy.DRUG_PRESC_MASTER VALIDATE STRUCTURE CASCADE;
    看来表数据是好的
3. 重新创建索引 ,执行下边语句,然后在打开c:\pharmacy.txt,拷贝出里边所以的alter index 开头的语句,在sql> 下在运行一遍。
set pagesize 200
spool c:\pharmacy.txt
select   'alter   index   '||index_name||'   rebuild;'   from   dba_indexes 
where   owner=upper('pharmacy') ;
spool off
 
我的故障到此解决,以下步骤记录转载备查。
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
 4.如果。重建索引后,问题依旧。 

   根据METALINK上的说明,设置10078事件,问题依旧 
  如何解决ora-600 12700错误问题Set event 10078 如何解决ora-600 12700错误问题At session level 如何解决ora-600 12700错误问题SQL> Alter session set events '10078 trace name context forever' 如何解决ora-600 12700错误问题SQL> alter system flush shared_pool; 如何解决ora-600 12700错误问题Run the select query failing with ORA-00600[12700] 如何解决ora-600 12700错误问题
    具体参见Note:337631.1 

    5.根据Note:155933.1的说法,应该是ROWID找不到了,因此,我想到重建建立一个表来测试一下。 
    Create Table cq.Physicalconnection_bak As Select * From cq.Physicalconnection
再执行: Select Id, Avertexid, Avertextype, Zvertexid, Zvertextype From cq.Physicalconnection_bak Where (Avertextype = 'C' And Avertexid In (840402))
Or (Zvertextype = 'C' And Zvertexid In (840402))
    执行以上语句无问题。 
因此,决定通过重新创建表语句来解决这个问题。 

    四、解决问题 
    通过Create Table cq.Physicalconnection_bak As Select * From cq.Physicalconnection,再把这个cq.Physicalconnection表删除,
再改名改表即可,问题解决,后续权限交给相关开发人员解决。
阅读(1454) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~