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: 未明确定义列

哪儿的错?看的没毛病呀

sql

4个回答

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

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

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

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

Csdn user default icon
上传中...
上传图片
插入图片
抄袭、复制答案,以达到刷声望分或其他目的的行为,在CSDN问答是严格禁止的,一经发现立刻封号。是时候展现真正的技术了!
立即提问