程序问答   发布时间:2022-06-02  发布网站:大佬教程  code.js-code.com
大佬教程收集整理的这篇文章主要介绍了为什么此查询可在11g上运行时在10g上抛出ORA-00942?大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。

如何解决为什么此查询可在11g上运行时在10g上抛出ORA-00942??

开发过程中遇到为什么此查询可在11g上运行时在10g上抛出ORA-00942?的问题如何解决?下面主要结合日常开发的经验,给出你关于为什么此查询可在11g上运行时在10g上抛出ORA-00942?的解决方法建议,希望对你解决为什么此查询可在11g上运行时在10g上抛出ORA-00942?有所启发或帮助;

正如Bob在评论中所暗示的那样,该问题是由于Oracle 10g的版本错误所致。

有几台服务器使用相同的架构和相同的查询,只有版本10.2.0.1.0的服务器才有问题。Oracle专家认为该错误在10.2.0.4上不存在,但我无权访问Oracle错误数据库。

由于对服务器打补丁对于我们的客户来说是毫无疑问的,因此我们最终通过为该查询创建视图来解决该错误。

TLDR:当Oracle说某个版本存在错误并且不应使用时,则不应使用它。

解决方法

我在我的11g安装上执行此查询没有问题:

SELECT
    PRODUCT_INFOS_idm.FIELD_VALUE "mother_id",PRODUCT_INFOS_ep.FIELD_VALUE "product_thickness",COIL_INFOs.TIME_STAMP,COIL_INFOs.IN_THICKnesS,COIL_INFOs.MEASURED_LENGTH,COIL_INFOs.MEASURED_WIDTH,COIL_INFOs.PARAM_SET_TOP_SIDE,COIL_INFOs.PARAM_SET_BOTTOM_SIDE
FROM
    COIL_INFOS
INNER JOIN
    PRODUCT_INFOS PRODUCT_INFOS_idm
    on PRODUCT_INFOS_idm.COIL_ID_SYSTEM=COIL_INFOs.COIL_ID_SYSTEM
    and PRODUCT_INFOS_idm.TIME_STAMP=COIL_INFOs.TIME_STAMP
    and PRODUCT_INFOS_idm.FIELD_NAME='ID bobina'
INNER JOIN  
    PRODUCT_INFOS PRODUCT_INFOS_ep
    on PRODUCT_INFOS_ep.COIL_ID_SYSTEM=COIL_INFOs.COIL_ID_SYSTEM
    and PRODUCT_INFOS_ep.TIME_STAMP=COIL_INFOs.TIME_STAMP
    and PRODUCT_INFOS_ep.FIELD_NAME='Anchura'
WHERE
    (COIL_INFOs.COIL_ID_SYSTEM LIKE '14051800' OR COIL_INFOs.COIL_ID LIKE '14051800')

但是当我的客户(可能安装了10g的设备)执行它时,他得到了

ORA-00942: table or view does not exist

其他查询表明他具有相同的表和列。 以下查询执行没有问题:

SELEct count(*) from COIL_INFOS
SELEct count(*) from PRODUCT_INFOS

可能是什么问题?某个地方有语法错误吗?我怀疑Oracle版本有问题(我已经不得不删除通常用于列别名的“ as”)。Oracle 10g是否支持表别名?

大佬总结

以上是大佬教程为你收集整理的为什么此查询可在11g上运行时在10g上抛出ORA-00942?全部内容,希望文章能够帮你解决为什么此查询可在11g上运行时在10g上抛出ORA-00942?所遇到的程序开发问题。

如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。

本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。