您的位置:首页 > 其它

ORA-00918: column ambiguously defined

2016-02-22 11:43 513 查看


ORA-00918: column ambiguously defined

今天遇到了一个Oracle的SQL问题:ORA-00918:
column ambiguously defined
大致的意思就是字段名称不明确,可能存在同名的字段

SELECT *  

  FROM (SELECT ROW_.*, ROWNUM ROWNUM_  

          FROM (SELECT ACCEPT_DEPT_NAME,  

                       ACCEPT_NO,  

                       ACCEPT_TIME,  

                       FINISH_TIME,  

                       RECENT_OPINION,  

                       ACCEPT_USER_NAME,  

                       APPLY_USER_ID,  

                       FIRST_SUBMIT_TIME,  

                       INFOFLOW_ID,  

                       ACCEPT_DEPT_ID,  

                       BIZ_STATE,  

                       IS_SUPPLY,  

                       IS_SUBMIT,  

                       INFOFLOW_NAME,  

                       SERIAL_NO,  

                       APPLY_TYPE,  

                       APPLY_USER_NAME,  

                       INFOFLOW_TYPE_NAME,  

                       AREA_CODE,  

                       APPLY_SUBJECT_NAME,  

                       FINISH_TYPE,  

                       ACCEPT_ORGAN_INAME,  

                       IS_RESUBMIT,  

                       APPLY_NO,  

                       INFOFLOW_TYPE_ID,  

                       IS_SUBMIT,  

                       ACCEPT_USER_ID,  

                       ACCEPT_ORGAN_ID,  

                       RECENT_SAVETIME,  

                       RECENT_RESULT,  

                       AREA_NAME  

                  FROM DSPC_APPLY_BASE  

                 WHERE 1 = 1  

                   and IS_SUBMIT = '0'  

                   and APPLY_USER_ID = 'ADMIN') ROW_  

         WHERE ROWNUM <= 10)  

 WHERE ROWNUM_ > 0  

程序使用的是自动化的Java实体映射SQL字段,查询数据的SQL并没有自己拼写,是由框架自动生成的,系统会打印出执行的SQL语句

将SQL语句复制到PLSQL中执行,也报同样的异常,只执行最内层的select语句是没有问题的,加上最外层的SELECT
ROW_.*就出现ORA-00918异常

网上查了一些资料,大多都是几个表联查出现的问题,而我的程序只涉及到一个单表

仔细看了下程序打印出来的SQL,虽然是单表查询,但是发现执行的SQL语句里有两个相同的字段名IS_SUBMIT,到这里,原因基本上就找到了,后来去看了下Java实体类映射中的ORM标注,发现的确有两个属性名称不同的Java属性映射了同一个SQL字段,修改之后,问题你迎刃而解。

参考资料:
http://www.dotblogs.com.tw/sporting/archive/2012/10/10/76382.aspx
http://blog.chinaunix.net/uid-20274021-id-1969225.html
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: