<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> <html><head><meta http-equiv="Cont

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

今天遇到了一个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


相关文章
|
Web App开发 监控 前端开发
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> <html><head><meta http-equiv="Cont
系统的升级涉及各个架构组件,细节很多。常年累月的修修补补使老系统积累了很多问题。 系统升级则意味着需要repair之前埋下的雷,那为何还要升级,可以考虑以下几个方面 成熟老系统常见问题: 1. 缺乏文档(这应该是大小公司都存在的问题。
591 0
|
Web App开发 前端开发 Java
|
Web App开发 前端开发 Java
|
关系型数据库 Android开发 Oracle
(翻译)第二十三回 JavaFX2.0 超链接Hyperlink
原文地址http://download.oracle.com/javafx/2.0/ui_controls/hyperlink.htm       Hyperlink 类呈现的是Labeled 控件的另一种形式,主要用来格式化超链接文本。
942 0
|
8天前
|
NoSQL Cloud Native Redis
Redis核心开发者的新征程:阿里云与Valkey社区的技术融合与创新
阿里云瑶池数据库团队后续将持续参与Valkey社区,如过往在Redis社区一样耕耘,为开源社区作出持续贡献。
Redis核心开发者的新征程:阿里云与Valkey社区的技术融合与创新
|
8天前
|
关系型数据库 分布式数据库 数据库
PolarDB闪电助攻,《香肠派对》百亿好友关系实现毫秒级查询
PolarDB分布式版助力《香肠派对》实现百亿好友关系20万QPS的毫秒级查询。
PolarDB闪电助攻,《香肠派对》百亿好友关系实现毫秒级查询
|
9天前
|
消息中间件 Cloud Native Serverless
RocketMQ 事件驱动:云时代的事件驱动有啥不同?
本文深入探讨了云时代 EDA 的新内涵及它在云时代再次流行的主要驱动力,包括技术驱动力和商业驱动力,随后重点介绍了 RocketMQ 5.0 推出的子产品 EventBridge,并通过几个云时代事件驱动的典型案例,进一步叙述了云时代事件驱动的常见场景和最佳实践。
115101 1
|
10天前
|
弹性计算 安全 API
访问控制(RAM)|云上安全使用AccessKey的最佳实践
集中管控AK/SK的生命周期,可以极大降低AK/SK管理和使用成本,同时通过加密和轮转的方式,保证AK/SK的安全使用,本次分享为您介绍产品原理,以及具体的使用步骤。
101871 3
|
6天前
|
物联网 PyTorch 测试技术
手把手教你捏一个自己的Agent
Modelscope AgentFabric是一个基于ModelScope-Agent的交互式智能体应用,用于方便地创建针对各种现实应用量身定制智能体,目前已经在生产级别落地。