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

前端之家收集整理的这篇文章主要介绍了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作业来定期运行和删除任何剩下的表.

猜你在找的MsSQL相关文章