执行存储过程中监测到数据库alert_sid.log日志中有报错,有时候执行第一次报错,重新执行又不报错了:
Mon Jan 19 14:48:00 2009
Errors in file /oracle/app/oracle/admin/jsubis/udump/jsubis_ora_114290.trc:
ORA-07445: exception encountered: core dump [] [] [] [] [] []
jsubis_ora_114290.trc的内容太长,截取其中一段内容如下:
Oracle9i Enterprise Edition Release 9.2.0.4.0 - 64bit Production
With the Partitioning option
JServer Release 9.2.0.4.0 - Production
ORACLE_HOME = /oracle/app/oracle/product/9.2.0
System name:    AIX
Node name:      p650_down
Release:        1
Version:        5
Machine:        0052FD8A4C00
Instance name: jsubis
Redo thread mounted by this instance: 1
Oracle process number: 73
Unix process pid: 114290, image: oracle@p650_down (TNS V1-V3)*** SESSION ID:(146.8257) 2009-01-19 14:48:00.348
*** 2009-01-19 14:48:00.348
Exception signal: 11    0x1019685dc (klcligprc+00d0) 7c03282a

----- End of Call Stack Trace -----
*** 2009-01-19 14:48:00.394
ksedmp: internal or fatal error
ORA-07445: exception encountered: core dump [] [] [] [] [] []
Current SQL statement for this session:
INSERT /*+ append*/
  INTO DW.DW_BILL_OPPOSE_USER_TADAY WITH STAT_A AS
    (SELECT USER_NO, OPPOSE_NUMBER, OPPOSE_DEALER, OPPOSE_NUMBER_TYPE,
            OTHER_HOME_CODE, START_CALL_TIME, CITY_CODE,
            MIN(FIRST_CALL_TIME) OVER(PARTITION BY OPPOSE_NUMBER) FIRST_CALL_TIME,
            MAX(LAST_CALL_TIME) OVER(PARTITION BY OPPOSE_NUMBER) LAST_CALL_TIME,
            SUM(CALL_DURATION) OVER(PARTITION BY OPPOSE_NUMBER) CALL_DURATION,
            SUM(AIRTIME_TIMES) OVER(PARTITION BY OPPOSE_NUMBER) AIRTIME_TIMES,
            SUM(CDR_NUM) OVER(PARTITION BY OPPOSE_NUMBER) CDR_NUM,
            INNET_CITY, TOWN_ID, CELL_ID,
            ROW_NUMBER() OVER(PARTITION BY OPPOSE_NUMBER ORDER BY START_CALL_TIME ASC) USER_CALL_NUM_MARK
       FROM  DW.DW_BILL_OPPOSE_USER_GSM_DAY)
    SELECT :b1 ACCT_DATE, OPPOSE_NUMBER PHONE_NUMBER,
           (CASE
             WHEN SUBSTR(OPPOSE_NUMBER, 1, 1) = '0' THEN
              '35'
             ELSE
              OPPOSE_NUMBER_TYPE
           END) OPPOSE_NUMBER_TYPE, OPPOSE_DEALER, TOWN_ID INNET_BLOCK,
           INNET_CITY, CITY_CODE INNET_AREA, FIRST_CALL_TIME CREATE_DATE,
           FIRST_CALL_TIME FIRST_CALL_DAY, LAST_CALL_TIME LAST_CALL_DAY,
           NULL PRE_LAST_CALL_DAY, CALL_DURATION CALL_DURATION,
           CDR_NUM CALL_COUNTS, OTHER_HOME_CODE OTHER_HOME_CODE, USER_NO,
           CELL_ID, CALL_DURATION DAY_CALL_DURATION, CDR_NUM DAY_CALL_COUNTS
      FROM STAT_A
     WHERE USER_CALL_NUM_MARK=1
----- PL/SQL Call Stack -----
  object      line  object
  handle    number  name
7000002769aa628       126  procedure DW.P_DW_BILL_OPPOSE_USER_TADAY
7000002741b4128         1  anonymous block
----- Call Stack Trace -----
calling              call     entry                argument values in hex      
location             type     point                (? means dubious value)     
-------------------- -------- -------------------- ----------------------------

解决方案 »

  1.   

    Call Stack Trace ----- 把这部分再多帖几行
      

  2.   

    楼主,给你找了一个文章,专门处理这个问题的。
    http://www.itpub.net/thread-658183-1-1.html
      

  3.   

    应该是你的数据超长了,你数据库中的字段长度太小,第二次oracle会自动截取建议你再插入的时候trim一下
      

  4.   

    或许又是oracle与aix的兼容问题。LZ把过程中的语句直接执行,看看有什么提示
      

  5.   

    ORA-07445 exception encountered: core dump [string] [string] [string] [string] [string] [string]Cause: An operating system exception occurred which should result in the creation of a core file. This is an internal error.Action: Contact Oracle Support Services.
      

  6.   

    oracle bug 到metalink下个补丁打上就可以了,当然也可以修改sql,饶过bug