ORA-00918: column ambiguously defined
来源:互联网 发布:javascript张容铭 pdf 编辑:程序博客网 时间:2024/05/20 10:52
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
0 0
- ORA-00918: column ambiguously defined
- ORA-00918: column ambiguously defined
- ORA-00918: column ambiguously defined
- ORA-00918: column ambiguously defined
- ORA-00918 column ambiguously defined
- ORA-00918: column ambiguously defined
- ORA-00918: column ambiguously defined解决之道
- ORA-00918: column ambiguously defined错误应对方法
- ORA-00918: column ambiguously defined 未明确定义列
- column ambiguously defined
- oracle: column ambiguously defined
- [Hibernate]"column ambiguously defined"异常
- springMVC+ibaties 分页查询数据时 提示错误 将语句复制到数据库进行编译 报错为ORA-00918: column ambiguously defined
- 数据库分页查询报错:ORA_00923:column ambiguously defined 某列定期模糊
- DROP COLUMN ORA-12991 & ORA-12983
- ORA-00957: duplicate column name
- java.sql.SQLSyntaxErrorException: ORA-01747: user.table.column, table.column
- ORA-12899: value too large for column
- ECMAScript6
- public、protected、default、private作用域
- java中的IO最全面整理
- Eclipse远程调试Tomcat方法
- Zephyr-项目介绍
- ORA-00918: column ambiguously defined
- Java虚拟机学习笔记
- ASP.NET小技巧——回传后保持页面的滚动位置
- 数据结构实验之链表九:双向链表
- ubuntu14.04 安装搜狗输入法
- java Ping操作
- 向MapReduce转换:通过部分成绩计算矩阵乘法
- 三种方法实现js跨域访问
- asp.net跳转页面的三种方法比较