暂无图片
暂无图片
暂无图片
暂无图片
暂无图片

Oracle 全局临时表错误

askTom 2018-07-31
452

问题描述

嗨,AskTom,

您能帮我解决这个问题吗?我们的应用程序使用大量的全局临时表 (GTT) 有提交保留行选项。

  CREATE GLOBAL TEMPORARY TABLE "ODR"."GTT_POINT" 
   ( "POINT_ID" NUMBER(10,0) NOT NULL ENABLE
   ) ON COMMIT PRESERVE ROWS 
复制


当Java线程针对此GTT运行事务时,我们通常会收到以下错误。

“异常: Java场景运行器执行错误: [I:odr,T:362033,B:10204100],异常 [com.oracle.ugbu.ouca.core.pointcache.Exception.PointCacheException: 从db读取点数据以进行点批处理时出现异常,点类型代码: 天气,factId:18,factTypeCode: 度量,startTimeInt:1523422800,endTimeInt:1531803600]

由以下原因引起: com.oracle.ugbu.ouca.core.exception.DataStoreException: 用于查询的批处理删除中的异常: 截断表GTT_POINT

由以下原因引起: java.sql.SQLSyntaxErrorException: ORA-00942: 表或视图不存在"


您知道是否有任何错误或解决方法来解决此错误?感谢您的反馈和时间。

谢谢
拉维

专家解答

你有ORA-942错误。这表明:

-有人正在删除并重新创建该表 (坏主意!),而当它丢失时,您碰巧会访问它
-某人正在授予/撤销表上的访问权限,而当您没有特权时,您恰好可以访问
-代码指向错误的表。这可能是由于缺少模式前缀或使用指向错误位置的同义词

要弄清楚发生了什么,请检查:

-从您的应用发送到数据库的确切SQL当您以应用程序用户的身份在SQL Developer/SQL * Plus/... 中连接时,这是否有效?
-如果表正在定期重新创建。检查user_objects.created是为了看到这个
-访问表的其他代码在做什么
「喜欢这篇文章,您的关注和赞赏是给作者最好的鼓励」
关注作者
【版权声明】本文为墨天轮用户原创内容,转载时必须标注文章的来源(墨天轮),文章链接,文章作者等基本信息,否则作者和墨天轮有权追究责任。如果您发现墨天轮中有涉嫌抄袭或者侵权的内容,欢迎发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。

评论