微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

sql – 在Oracle分布式数据库中处理LOB的最佳方式

如果创建Oracle数据库链接,则无法直接访问目标表中的LOB列.

例如,您创建一个dblink:

create database link TEST_LINK 
  connect to TARGETUSER IDENTIFIED BY password using 'DATABASESID';

之后,你可以做如下事情:

select column_a,column_b 
from data_user.sample_table@TEST_LINK

除非列是LOB,否则您会收到错误

ORA-22992: cannot use LOB locators selected from remote tables

这是a documented restriction.

同一页面建议您将值提取到本地表中,但这是一种凌乱的方式:

CREATE TABLE tmp_hello 
AS SELECT column_a 
from data_user.sample_table@TEST_LINK

任何其他想法?

解决方法

是的,它是凌乱的,我不能想到一种方法来避免它. 您可以通过将临时表创建放在存储过程中(并使用“立即执行”创建它们表)来隐藏客户端的一些混乱,你需要注意的一件事情是留在临时表上(应该有一些事情在一段时间内无法清理) – 你可以安排一个oracle作业来定期运行和删除任何剩下的表.

原文地址:https://www.jb51.cc/mssql/75469.html

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐