一尘不染

ORA-00904:``rom $ _subquery $ _014''..``olumn_name'':无效的标识符

sql

在我的oracle db im迁移后,出现以下错误:

ORA-00904: "from$_subquery$_014"."TRN_TERMINAL_SOFTWARE_VERSION": invalid identifier

以下是我的查询:

SELECT
  *
FROM
  (
    SELECT
      SUM(trn_amt)   AS amount,
      SUM(trn_count) AS COUNT ,
      timetype       AS period ,
      seq ,
      ROW_NUMBER() OVER (ORDER BY vw.seq DESC) AS RowNumber
    FROM
      YSD_STORE_FORWARD_V vw
    INNER JOIN store_dimension std                 ON vw.stm_id=std.std_id
    INNER JOIN card_type_dimension ctd             ON vw.CTD_CARD_ABBV=ctd.CTD_CARD_ABBV
    INNER JOIN STPLDBTEMP.store_group_relation sgr ON std.STD_ID= sgr.sgr_store_id
    INNER JOIN location_dimension ld               ON ld.lod_id=std.std_location_id
WHERE
  start_date BETWEEN 20170405 AND 20170405
AND std.std_corp_id    ='1939'
AND sgr.sgr_sgm_id     ='2160'
AND ctd.CTD_CARD_ABBV IN ('VE','VI','VS','VD','AX','AE','MD','MC','MF','XX'
  ,'DB','JB','NV','DS','EB','EBC','EBF','EBW','VF','VG','WX','DC','GF','PL'
  ,'PW','NM','BG','GC','FL','FO','FT','FW','INV','IV','IN','CP')
AND LD.LOD_COUNTRY_ID = 1
GROUP BY
  timetype ,
  seq
ORDER BY
  4

);

我仍未在查询中使用列,但仍收到此错误,请帮助我YSD_STORE_FORWARD_V使用正在实例化的视图包含TRN_TERMINAL_SOFTWARE_VERSION列的视图,但我的工作很好。


阅读 244

收藏
2021-05-16

共1个答案

一尘不染

这是Oracle 11.2.0.4中的错误,在使用子查询或ansi联接的查询中随机出现。

在我的情况下,我找到了根本原因:是由于我从11.2.0.4执行expdp导致的,并且该模式具有MATERIALIZED
VIEWS。然后,我在其他数据库(10g,11g甚至12c)中做了一个impdp。某些地方问题导致该错误。

我解决了这个问题:

  1. EXPDP,不包括MATERIALIZED_VIEWS

  2. IMPDP。与MATERIALIZED_VIEW对象有关的一些错误被忽略。

  3. 手动创建所有MATERIALIZED_VIEW对象。

  4. 使用$ ORACLE_HOME / rdbms / admin / utlrp.sql重新编译数据库中的所有对象。

这是错误文档的摘录:

错误17551261 ORA-904“来自$ _subquery $ _003”。 与查询重写

本说明对错误17551261进行了简要概述。内容最后更新于:2014年2月21日

影响:

产品(组件)Oracle Server(Rdbms)

可能受影响的版本范围版本低于12.1

确认受影响的版本 11.2.0.4

受影响的平台通用(受影响的所有/大多数平台)

因此,它被认为是默认行为的回归:
11.2.0.4中引入的回归

已修复: 17551261的修复程序首先包含在12.1.0.1(基本版本)中

说明 此问题是由错误14049796的修补程序在11.2.0.4中引入的。

如果引发类似于以下内容的ORA-904:
ORA-00904:“ from $ _subquery $ _003”。“ SUBSCRIBER_SID”: 使用ANSI联接的SQL语句中的
无效标识符 ,那么,如果所有以下是正确的:

1)使用摘要重写

2)修复存在的bug:14049796(此修复包含在11.2.0.4中)

3)错误堆栈包括kkogvcd()和kkqsgen()

解决方法 禁用查询重写

2021-05-16