我在plsql中使用dblink访问远程数据库上的表,执行select后为什么plsql提示有数据需要提交或回滚?

 我来答
悟空的领悟
2019-05-28
知道答主
回答量:3
采纳率:0%
帮助的人:2649
展开全部

你应该是查询结果没展示完全,点击下面的绿色向下箭头获取全部的查询结果就不会提示要你提交或者回滚了。

ribone
推荐于2017-11-26 · 超过32用户采纳过TA的回答
知道答主
回答量:57
采纳率:0%
帮助的人:80.9万
展开全部
这个问题背后还有很多故事,我就献丑长话短说,提供我的理解,希望对你有所帮助:
1、Oracle有一个分布式数据库和分布式事务的概念,具体情况可以参阅Oracle官方文档:
http://docs.oracle.com/cd/B28359_01/server.111/b28310/ds_txnman.htm#i1207516
2、在通过DBLINK执行DML(含SELECT)和DDL访问远程数据的对象(表、视图、存储过程等)时,会自动开启连接和会话到远程数据库。
3、由于远端数据库和本地数据都有各自的SCN,而SCN是Oracle保证读一致性非常霸气的东西,必须做两个数据库的SCN同步(Oracle目前还没有能够实现实时同步SCN)Oracle就自动开启分布式事务,在分布式事务的开始和结束时同步SCN(在每个SQL执行完也会同步SCN)。
详细情况参阅Oracle官方文档:
http://docs.oracle.com/cd/B28359_01/server.111/b28310/ds_txnman010.htm#ADMIN12288
4、在Commit或Rollback后,会结束事务。
简单一句话,就是为了保证读一致性。
追问
恩,有所理解了。 那我要是一直不点提交呢,会有什么问题吗  ? 就当平时一样的查询
追答
一直不提交事务,就会一直占用远端数据库中的回滚段,导致被占用的回滚段无法回收,如果在PLSQL开发方面不做控制的话,可想而知,可能会导致远端数据库的不定时的报出回滚段相关的错误(比如回滚段用光,就报错了)
本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
百度网友632ec9b
2018-07-16
知道答主
回答量:4
采纳率:0%
帮助的人:4083
展开全部
不知道在不在,这个要回滚还是提交
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 1条折叠回答
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式