- 最后登录
- 2015-7-10
- 在线时间
- 10 小时
- 威望
- 3
- 金钱
- 160
- 注册时间
- 2012-7-31
- 阅读权限
- 10
- 帖子
- 33
- 精华
- 0
- 积分
- 3
- UID
- 656
|
1#
发表于 2014-8-26 21:30:17
|
查看: 4735 |
回复: 6
在oracle 11.2.0.3上执行是完全没有问题的,但是11.2.0.4(RAC)上执行就是会报0ra-01791
select distinct dd.id, b.proj_name, dd.chrg_card, dd.holder_name, b.proj_id
from tk_mem_creditcard_his_dt dd, bd_datadeta_dt b
where dd.chrg_cardnm = b.proj_id
and b.datatype_id = '00008'
and dd.paytype_id = '0000300001'
and dd.member_card_no = '105664728'
order by dd.update_time desc
ORA-01791: 不是 SELECTed 表达式
当然我测试如果在select里加上 dd.update_time 在11.2.0.4也不会报错,如下:
select distinct dd.id, b.proj_name, dd.chrg_card, dd.holder_name, b.proj_id,dd.update_time
from tk_mem_creditcard_his_dt dd, bd_datadeta_dt b
where dd.chrg_cardnm = b.proj_id
and b.datatype_id = '00008'
and dd.paytype_id = '0000300001'
and dd.member_card_no = '105664728'
order by dd.update_time desc
但是奇怪的是在高版本里为什么倒还报错呢,应该向后兼容才对呀,11.2.0.4版本为什么不行呢?
我们现在上一个升级的系统,如果旧版里存在这样的语句会出潜在的问题。。。
谢谢! |
|