查询视图报错 ora-01791

ipooy 2019-06-05 10:54:31
求教各位,我有一个视图orders,里面使用的union语句,在查询视图orders时报错
ORA-01791: 不是 SELECTed 表达式

SELECT distinct col1 c1,col2 c2 from orders A order by A.col1

如果写成order by c1就可以,order by col1 也可以,就是order by A.col1报错,现在因为不能改查询语句,只能在视图上想办法,请问各位怎么解决?
...全文
155 11 打赏 收藏 转发到动态 举报
写回复
用AI写文章
11 条回复
切换为时间正序
请发表友善的回复…
发表回复
ipooy 2019-06-06
  • 打赏
  • 举报
回复
搞定了,感谢了
卖水果的net 2019-06-05
  • 打赏
  • 举报
回复
视图怎么写的? -- 你是说这个写法,会报错吗? SELECT distinct col1 c1,col2 c2 from orders A order by A.col1
minsic78 2019-06-05
  • 打赏
  • 举报
回复
还有一种方式也可以改写下试试: select co1,col2... from ( query1 union all query 2 )
minsic78 2019-06-05
  • 打赏
  • 举报
回复
引用 8 楼 ipooy 的回复:
感觉也是bug,名字保持一样了也不行
用的版本是不是比较初始的版本?比如11.2.0.1这种?可以试着升级到11.2.0.3或者11.2.0.4,有条件的还可以打上最新的PSU再看看
ipooy 2019-06-05
  • 打赏
  • 举报
回复
感觉也是bug,名字保持一样了也不行
minsic78 2019-06-05
  • 打赏
  • 举报
回复
引用 6 楼 minsic78 的回复:
怀疑是个BUG……
如果5楼的方法不能解决,楼主确认下数据库的版本
minsic78 2019-06-05
  • 打赏
  • 举报
回复
怀疑是个BUG……
minsic78 2019-06-05
  • 打赏
  • 举报
回复
视图里的别名改成和字段名一样不行吗?
ipooy 2019-06-05
  • 打赏
  • 举报
回复
是的,如果视图中不使用union all,只从一个表中取数据,查询视图也不会出错,真的感觉很奇怪
卖水果的net 2019-06-05
  • 打赏
  • 举报
回复
视图怎么写的? -- 你是说这个写法,会报错吗? SELECT distinct col1 c1,col2 c2 from orders A order by A.col1
ipooy 2019-06-05
  • 打赏
  • 举报
回复
视图没有特别的语句如下
create or replace view MyView as
select col1 as c1,col2 as c2,col3 as c3 from table1
union all
select c1,c2,c3 from table2

17,377

社区成员

发帖
与我相关
我的任务
社区描述
Oracle 基础和管理
社区管理员
  • 基础和管理社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧