当前位置 : 主页 > 网络编程 > 其它编程 >

oracle数据库_oracle数据库中有数据,通过pl/sql查询不到,用sqlplus能查到,PL/SQLdeveloper会对数据进行本地缓存

来源:互联网 收集:自由互联 发布时间:2023-07-02
篇首语:本文由编程笔记#自由互联小编为大家整理,主要介绍了oracle数据库中有数据,通过pl/sql查询不到,用sqlplus能查到,PL/SQLdeveloper会对数据进行本地缓存相关的知识,希 篇首语:
篇首语:本文由编程笔记#自由互联小编为大家整理,主要介绍了oracle数据库中有数据,通过pl/sql查询不到,用sqlplus能查到,PL/SQLdeveloper会对数据进行本地缓存相关的知识,希

篇首语:本文由编程笔记#自由互联小编为大家整理,主要介绍了oracle数据库中有数据,通过pl/sql查询不到,用sqlplus能查到,PL/SQL developer会对数据进行本地缓存相关的知识,希望对你有一定的参考价值。

这几天遇到了两个问题,都很奇葩,苦恼了三天,最终还是定位出来了。

问题一、通过pl/sql developer插入数据到远程oracle数据库服务器,通过pl/sql developer查询能查询到数据,但是通过远程Oracle的sqlplus却查不到数据,应用程序通过mybatis进行查询也查不到数据。

在问题发生后,由于本人mybatis不熟悉,一直怀疑是语法和配置除了问题,定位问题一直这两个方向下手,从官方文档看,语法是没有问题的,但是还是按照自己的怀疑各种改,各种试,一直怀疑是能查询出来结果,是mybatis转换java对象时出了问题,后来调试进入到最根部,JDBC访问数据处,还是没有数据,最终判断不是mybatis出了问题,问题还是出在了数据预置的地方,重新通过服务器上的sqlplus预置数据,数据本查询出来。从而断定是pl/sql developer自己对新增的数据做了缓存,没有插入到服务器中。问题解决。

问题二、通过应用查询插入数据,但查询的时候查询不出来,通过pl/sql developer进行查询也是查询不出来,但是在远程的oracle服务器上通过sqlplus却能查询出来。

刚开始应用查询有问题,发起查询列表的语句没有执行。还是就是通过pl/sql developer新建表结构到远程oracle服务器,由于应用中的实体Bean和数据库中的字段类型不匹配。都可能导致查询数据有问题。通过问题一的解决断定PL/SQL developer会对表结构,表数据做缓存。还发现的一个现象是,第一次连接虽然能连接上,但是执行sql的按钮灰色,再通过他连接其他的数据库,按钮发亮,在切换到之前的数据库,按钮才发亮,这个过程,也说明了PL/SQL developer是有问题的。PL/SQL developer对表结构和数据做缓存。

场景是这样的:

项目架构是spring+mybatis+tk.mybatis+springmvc

使用mybatis的扩展工具tk.mybatis省去了一般的增删改成冗余代码,由于对mybatis语法不是很熟悉,一直怀疑是

使用Mybatis查询,和使用pl/sql查询t_product_info表中的数据

主要可能原因应该是插入数据前和插入数据后的数据结构不一致。通过删表重建数据来解决。

上一篇:空间统计说历史:奥德修斯的归家之路
下一篇:没有了
网友评论