exception ORA-00918: 未明确定义列

本文详细解析了ORA-00918错误的出现原因,并提供了具体的SQL语句示例,帮助读者理解如何避免在多表联接查询时因列名不明确而导致的错误。
 

exception ORA-00918: 未明确定义列

CreateTime--2018年5月9日16:08:48

Author:Marydon

1.错误代码展示

SELECT G.*
  FROM (SELECT F.*
          FROM (SELECT E.*, ROWNUM ROWNO
                  FROM (SELECT T.ID,
                               T.VIRTUAL_ID,
                               T.INDEX_ID,
                               T.ID_CARD,
                               T.NAME,
                               T.CARDNUM,
                               T.CARDTYPE,
                               T.TELPHONE,
                               T.SEX,
                               TO_CHAR(T.BIRTHDAY, 'YYYY-MM-DD') BIRTHDAY,
                               T.ADDRESS,
                               T.ACCESS_TYPE,
                               T.ACCESS_ID,
                               T.ENTITY_CARDTYPE,
                               T.ENTITY_CARDNUM,
                               T.RETURN_QR_CODE,
                               T.OPENID,
                               T.RANDOM,
                               TO_CHAR(T.TIME, 'yyyy-mm-dd hh24:mi:ss') TIME,
                               T.FNAME,
                               T.STATUS,
                               T.QR_CODE_TYPE
                          FROM VIRTUAL_CARD T, PRIMARY_INDEX T2
                         WHERE T.INDEX_ID = T2.INDEX_ID
                           and NAME = ?
                           and INDEX_ID like ? || '%') E
                 ORDER BY E.TIME DESC NULLS LAST) F
         WHERE F.ROWNO <= ?) G
 WHERE G.ROWNO >= ?
--[张旭, 410, 15, 1]
View Code

2.错误解析

  T表和T2表都有字段INDEX_ID,而where条件的第二个INDEX_ID没有指定该字段从哪个表中获取,

  所以报错。

 

 相关推荐:

 

 

转载于:https://www.cnblogs.com/Marydon20170307/p/9014931.html

### The error may exist in file [C:\Users\C00494\IdeaProjects\fgm\target\classes\mybatis\mapper\BookingMapper.xml] ### The error may involve com.smecs.apps.fgm.mapper.BookingMapper.searchLogisticsHandover-Inline ### The error occurred while setting parameters ### SQL: SELECT * FROM ( SELECT TMP.*, ROWNUM ROW_ID FROM ( SELECT DELIVERY_CODE,DELIVERY_COMPANY_VALUE,CUSTOMER_NAME,CREATED_BY_COMPANY, CUSTOMER_CODE,BOX,TOTAL_QTY,BOOK_PACK_ID FROM ( SELECT A.DELIVERY_CODE,A.DELIVERY_COMPANY_VALUE, WM_CONCAT(DISTINCT A.ID) BOOK_PACK_ID, A.CUSTOMER_NAME,A.CREATED_BY_COMPANY, WM_CONCAT(DISTINCT A.CUSTOMER_CODE) CUSTOMER_CODE, COUNT(B.OUT_BOX_ID) BOX,SUM(B.PACKED_QTY) TOTAL_QTY , WM_CONCAT(DISTINCT A.ID) BOOK_PACK_ID FROM CERP_FGM_BOOKPACK A LEFT JOIN CERP_FGM_BOOKPACK_OUTBOX B ON A.UUID = B.MAIN_UUID AND B.DEL_FLAG = '0' LEFT JOIN CERPOMSADM.CERP_OMS_A1_ORDER ORDERS ON SUBSTR(A.SO,2,instr(A.SO,'-')-2) = ORDERS.ORDER_NO AND ORDERS.CREATED_BY_COMPANY = A.CREATED_BY_COMPANY AND ORDERS.DEL_FLAG = '0' WHERE A.DEL_FLAG = '0' AND A.TRANSFER_FLAG = '1' AND A.PRODUCT_RELEASE_ID IS NULL AND A.CREATED_BY_COMPANY = ? AND A.HANDOVER_PRINT_FLAG = ? GROUP BY A.DELIVERY_CODE,A.DELIVERY_COMPANY_VALUE,A.CUSTOMER_NAME,A.CREATED_BY_COMPANY ) ORDER BY DELIVERY_COMPANY_VALUE,DELIVERY_CODE ) TMP WHERE ROWNUM <=?) WHERE ROW_ID > ? ### Cause: java.sql.SQLSyntaxErrorException: ORA-00918: 明确定义 ; bad SQL grammar []; nested exception is java.sql.SQLSyntaxErrorException: ORA-00918: 明确定义什么错误
最新发布
09-09
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值