Oracle数据库数据恢复、性能优化

找回密码
注册
搜索
热搜: 活动 交友 discuz
发新帖

86

积分

0

好友

2

主题
1#
发表于 2012-6-12 15:55:40 | 查看: 5729| 回复: 2
一个语句执行到某条记录后会03113,然后程序退出。alert中没有其他错误信息。手工屏蔽该条记录后,程序正常执行完毕。product库,而且执行时间问题,没有trace。只有sql如下:
select nvl(SUM(SUM_FEE),0) SUM_FEE,b.CYCLE_ID from (                                                                  
       SELECT  nvl(SUM(fee), 0) SUM_FEE,CYCLE_ID                                                                       
       FROM B                                                                                                  
       WHERE (acct_id, partition_id) in                                                                                
               (select acct_id, mod(acct_id, 10000)                                                                    
                  from A
                 where partition_id = mod(:VUSER_ID,10000)                                                            
                   AND user_id = to_number(:VUSER_ID)                                                                  
                   and start_cyc_id <= to_number(to_char(sysdate, 'yyyymm'))                                          
                   AND end_cyc_id >= to_number(to_char(sysdate, 'yyyymm'))                                             
                   AND act_tag = '1')                                                                                 
           AND cycle_id >= :VSTART_CYCLE_ID AND cycle_id <= :VEND_CYCLE_ID                                             
           AND user_id = to_number(:VUSER_ID) group by CYCLE_ID                                                        
       UNION ALL                                                                                                      
       SELECT  nvl(SUM(fee), 0) SUM_FEE,CYCLE_ID                                                                       
          FROM C
         WHERE (acct_id, partition_id) in                                                                              
               (select acct_id, mod(acct_id, 10000)                                                                    
                  from A
                 where partition_id = mod(:VUSER_ID,10000)                                                            
                   AND user_id = to_number(:VUSER_ID)                                                                  
                   and start_cyc_id <= to_number(to_char(sysdate, 'yyyymm'))                                          
                   AND end_cyc_id >= to_number(to_char(sysdate, 'yyyymm'))                                             
                   AND act_tag = '1')                                                                                 
           AND cycle_id >= :VSTART_CYCLE_ID AND cycle_id <= :VEND_CYCLE_ID                                             
           AND user_id = to_number(:VUSER_ID) group by CYCLE_ID              
      UNION ALL                                                                                                        
       SELECT  nvl(SUM(fee), 0) SUM_FEE,CYCLE_ID                                                                       
          FROM C
         WHERE (acct_id, partition_id) in                                                                              
               (select acct_id, mod(acct_id, 10000)                                                                    
                  from A
                 where partition_id = mod(:VUSER_ID,10000)                                                            
                   AND user_id = to_number(:VUSER_ID)                                                                  
                   and start_cyc_id <= to_number(to_char(sysdate, 'yyyymm'))                                          
                   AND end_cyc_id >= to_number(to_char(sysdate, 'yyyymm'))                                             
                   AND act_tag = '1')                                                                                 
           AND cycle_id >= :VSTART_CYCLE_ID AND cycle_id <= :VEND_CYCLE_ID                                             
           AND user_id = to_number(:VUSER_ID) group by CYCLE_ID                                                        
  ) a ,D b
  WHERE a.cycle_id(+)=b.cycle_id AND b.cycle_id >= :VSTART_CYCLE_ID
        AND b.cycle_id <= :VEND_CYCLE_ID
  group by b.CYCLE_ID
  order by b.CYCLE_ID desc

[ 本帖最后由 lhpapa 于 2012-6-13 08:28 编辑 ]
2#
发表于 2012-6-12 15:58:02
单独执行这条记录的sql,也没有问题。

回复 只看该作者 道具 举报

3#
发表于 2012-6-12 16:00:36
一个好的问题 的基本要素:一个好的标题、 完整的版本信息、 完整的日志信息、 报错信息

请上传 当时的alert.log

回复 只看该作者 道具 举报

您需要登录后才可以回帖 登录 | 注册

QQ|手机版|Archiver|Oracle数据库数据恢复、性能优化

GMT+8, 2024-12-26 11:08 , Processed in 0.046342 second(s), 21 queries .

Powered by Discuz! X2.5

© 2001-2012 Comsenz Inc.

回顶部
TEL/電話+86 13764045638
Email service@parnassusdata.com
QQ 47079569