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
ORA-00918: column ambiguously defined的更多相关文章
- Caused by: java.sql.SQLException: ORA-00918: column ambiguously defined
外层t.*的时候,可能发现重复字段,所以检查内层的sql是否出现了重复字段的查询.
- Oracle Purchasing QUESTIONS AND ANSWERS
Topic Summary Topic: CORRECTIONS: Corrections Topic: DELIVER: Receiving Delivery Topic: DROPSHIP: Dr ...
- SQL内连接-外连接join,left join,right join,full join
1.创建测试表test1及test2 SQL)); 表已创建. SQL)); 表已创建. ,'name1'); ,'name2'); ,'name3'); ,'name4'); ,'name5'); ...
- SQL错误总结
ORA-00918: column ambiguously defined 异常原因: select 查询的字段在from的两张表中都存在,导致数据库无法区别需要查询的字段来自于哪张表 以下是例子 s ...
- SAP Column tree
code as bellow *&---------------------------------------------------------------------* *& I ...
- Oracle 所有字典
select * from DBA_CONS_COLUMNS ; ---Information about accessible columns in constraint definitions s ...
- oracle已知会导致错误结果的bug列表(Bug Issues Known to cause Wrong Results)
LAST UPDATE: 1 Dec 15, 2016 APPLIES TO: 1 2 3 4 Oracle Database - Enterprise Edition - Versi ...
- 浅谈Slick(3)- Slick201:从fp角度了解Slick
我在上期讨论里已经成功的创建了一个简单的Slick项目,然后又尝试使用了一些最基本的功能.Slick是一个FRM(Functional Relational Mapper),是为fp编程提供的scal ...
- 一些性能查询的SQL 备忘
--检查数据库的等待事件 from v$session_waitwhere event not like 'SQL%' and event not like 'rdbms%' --找出系统中耗时的操作 ...
随机推荐
- DIOCP开源项目-数据库连接池的使用<多帐套数据库>
很久没有写DIOCP的Demo了,主要公司的事情太繁琐,工作之余都不想动了,之前承若的群里面朋友们的DEMO,昨天晚上恶补了一下,把对数据库连接池的操作加入到了Demo中,大家可以通过SVN下载到最新 ...
- windows安装php和mysql
windows安装php和mysql 测试环境:windows2008-64位主机 1.下载护卫神php一件安装包 https://www.huweishen.com/soft/php/#phpdow ...
- SpringBoot整合SpringKafka实现生产者史上最简代码实现
该项目是使用的技术:SpringBoot + SpringKafka + Maven 先看pom.xml文件中引入的依赖: <?xml version="1.0" enco ...
- vue实现点击区域外部的区域,关闭该区域
var _this = this; document.addEventListener('click',function(e){ console.log(_this.$refs.configforms ...
- Ubuntu上搭建Hadoop环境(单机模式+伪分布模式)【转】
[转自:]http://blog.csdn.net/hitwengqi/article/details/8008203 最近一直在自学Hadoop,今天花点时间搭建一个开发环境,并整理成文. 首先要了 ...
- C#学习笔记(26)——委托计算器
说明(2017-11-20 15:14:18): 1. 委托一直稀里糊涂的,有人说简单,有人说难,艹你们! 2. 其实主要是因为,平时不用委托也能解决大部分问题,所以都没有特意去用,网上也没有什么很好 ...
- golang包管理的取巧
常见的golang的包管理工具 glide 使用yaml做配置,语义化版本管理,可以设置镜像,下载x系列库,但是x系列库被第三方库依赖时会出现下载失败. dep 亲儿子,语义化版本管理,无法解决墙 v ...
- Exception in thread "main" java.lang.UnsatisfiedLinkError: org.apache.hadoop.io .nativeio.NativeIO$Windows.createDirectoryWithMode0(Ljava/lang/String;I)V
首先,遇到这个问题的一个原因是windows环境中没有配置hadoophome.配置之后加入winutils工具 第二个原因,pom中执行的hadoop的版本与window环境中的hadoop的版本不 ...
- C# switch-case中的或(or)操作
今天需要在switch中添加一个条件,类似if中的 " || “操作 switch(var) { : : ... break; : : ... break; ... } 这样条件2 5会执行 ...
- Java编程的逻辑 (43) - 剖析TreeMap
本系列文章经补充和完善,已修订整理成书<Java编程的逻辑>,由机械工业出版社华章分社出版,于2018年1月上市热销,读者好评如潮!各大网店和书店有售,欢迎购买,京东自营链接:http:/ ...