关于oracle 12c SQL语句执行结果与11g不一致的问题

在将系统迁移至Oracle 12c (12.1.0.2)时,遇到SQL语句执行结果与11g不一致的问题。插入操作在11g及更低版本正常,但在12c中返回0条记录。分析发现,问题可能与优化器版本有关,降低optimizer_features_enable至11.2.0.3及以下可解决。开发人员不愿修改SQL,建议关注Oracle官方修复,或临时使用SQL提示降低优化器版本作为应对策略。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

将原有的系统迁移到oracle 12c上面,版本是12.1.0.2,总是有各种问题出现,不得不说,目前的版本真是个坑。

开发一条sql语句,insert .....select形式,单独执行select部分有结果,但insert。。。select的时候,显示插入结果为0,同样的数据,该语句放在10g,11gR1上都没问题,能够插入数据。只能说恭喜发财了。

语句如下:

insert all when nvl
  ((BM10060851_2), 0) <> 0 then into KPI.KPI_ORGAN
  (data_date, organ_code, curr_type, kpi_code, KPI_FREQ, KPI_VALUE)
values
  (to_date('20150730', 'YYYYMMDD'),
   org_no,
   '00',
   'BM10060851',
   'Q',
   BM10060851_2)
  select --/*+optimizer_features_enable('11.2.0.3')*/
  org_no,
         '00',
         to_number((count(distinct case
                 when GL_TYPE = 'Q' then
                  ACCT_NO
               END)),'9999999999999999999999.999999') BM10060851_2
    from CMDATA.C_S_ELEC_TX_ORG T
   where chan_type = 'P01'
   
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值