懵懂的男孩
2017-03-06 16:38
采纳率: 100%
浏览 4.5k

ORA-00918: 未明确定义列

SQL: select * from ( select tmp_page.*, rownum row_id from ( select * from receipt r,task t WHERE r.receipt_tid=t.task_id and t.task_status=1 ) tmp_page where rownum <= ? ) where row_id > ?

Cause: java.sql.SQLSyntaxErrorException: ORA-00918: 未明确定义列

哪儿的错?看的没毛病呀

  • 写回答
  • 好问题 提建议
  • 关注问题
  • 收藏
  • 邀请回答

4条回答 默认 最新

  • Tiger_Zhao 2017-03-07 05:29
    已采纳

    不仅仅是语句中写明的字段会出问题。
    select * from receipt r,task t 如果两表存在同名字段,这个子查询就会出现同名字段。
    (可能)数据库自带的查询工具会做特别处理而不出错;大多数的数据组件,同名就会出错。
    * 需要改为详细列举字段,并且通过取别名避免同名。

    已采纳该答案
    评论
    解决 无用
    打赏 举报
  • threenewbee 2017-03-06 19:09

    当你查询两个表存在相同的列,而又没有明确指明你写的列是哪个表的时候就会报这个错。仔细检查下你几个表重名的列名。

    评论
    解决 无用
    打赏 举报
  • zg1g 2017-03-06 23:26

    select.嵌套太深,考虑重新理一下,

    评论
    解决 无用
    打赏 举报
  • lhdren 2017-03-08 09:32

    select * from receipt r,task t
    这两张表应该有名字相同的两列,只要排查下就行了

    评论
    解决 无用
    打赏 举报

相关推荐 更多相似问题