Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/oracle/10.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Sql ORA-00904:;从$\u子查询$\u 014"&引用;“名称”列:无效的标识符_Sql_Oracle - Fatal编程技术网

Sql ORA-00904:;从$\u子查询$\u 014"&引用;“名称”列:无效的标识符

Sql ORA-00904:;从$\u子查询$\u 014"&引用;“名称”列:无效的标识符,sql,oracle,Sql,Oracle,迁移我的oracle db后,出现以下错误: 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 ,

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

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\u STORE\u FORWARD\u V
这是一个使用物化视图的视图contain
TRN\u TERMINAL\u SOFTWARE\u VERSION
列,但我的工作很好。

这是Oracle 11.2.0.4中的一个错误,它在使用子查询或ansi join的查询中随机出现

在我的例子中,我找到了根本原因:它是在我从11.2.0.4执行expdp时产生的,并且模式已经具体化了视图。然后我在其他数据库(10g、11g甚至12c)中进行了impdp。某种原因导致了这个错误

我解决了这个问题:

  • EXPDP不包括物化视图

  • IMPDP。存在一些与物化视图对象相关的错误,这些错误被忽略

  • 手动创建所有物化视图对象

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

  • 这是错误文档的摘录:

    错误17551261 ORA-904“来自$\u子查询$\u 003”。带着疑问 重写

    本说明简要概述了bug 17551261。 内容最后更新日期:2014年2月21日

    影响:

    产品(组件)Oracle服务器(Rdbms)

    12.1以下被认为受影响的版本范围

    确认受影响的版本11.2.0.4

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

    这被认为是违约行为的倒退,因此:
    11.2.0.4中引入的回归

    修复:首先修复17551261 包含在•12.1.0.1(基本版本)中

    说明此 在11.2.0.4中,bug 14049796的修复程序引入了这个问题

    如果引发类似于以下内容的ORA-904:
    ORA-00904:“来自$\u子查询$\u 003”。“订户SID”:无效标识符 从使用ANSI联接的SQL语句中,可能就是这种情况 如果以下所有情况均为真,则会出现错误:

    1) 使用摘要重写

    2) 缺陷修复:14049796存在(此修复包含在11.2.0.4中)

    3) errorstack包括kkogvcd()和kkqsgen()

    解决方法禁用查询重写


    如果运行
    SELECT*fromsd\u STORE\u FORWARD\u V
    ,会发生什么情况?这些列与您在上述查询中使用的列匹配吗?几个问题->1。此对象是否存在:
    TRN\u终端\u软件\u版本
    ?(尝试描述
    TRN\u终端软件版本
    )2。您的用户(运行上面的查询)是否具有
    READ
    权限?3.它是否驻留在同一个模式和同一个数据库上?删除冗余子查询是否有任何区别?或者至少将
    订单移动到外部?执行计划可能有助于确定Oracle生成的子查询名称适合整个查询的位置。听起来这可能是一个解析器错误。。。。这是哪个版本,您从哪个版本迁移,以及如何迁移?选择*from YSD_STORE_FORWARD_V当我运行此查询时,它会给我一个结果。1。此对象是否存在:TRN\u终端\u软件\u版本?(尝试描述TRN_终端_软件_版本)ans:是的,在我的视图和物化视图2中。您的用户(运行上面的查询)是否具有读取权限?答:是的。3.它是否驻留在同一架构和同一数据库上?答:是的,但我在普通查询中也遇到了这个错误,在我的旧版本11.2.0.1上运行良好,但在新版本11.2.0.4中出现错误。您是否尝试再次导入除物化视图以外的所有架构?之后,您必须在单独的脚本中创建物化视图,并编译所有对象。