加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 站长学院 > MsSql教程 > 正文

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

发布时间:2020-12-12 08:45:02 所属栏目:MsSql教程 来源:网络整理
导读:如果创建Oracle数据库链接,则无法直接访问目标表中的LOB列. 例如,您创建一个dblink: create database link TEST_LINK connect to TARGETUSER IDENTIFIED BY password using 'DATABASESID'; 之后,你可以做如下事情: select column_a,column_b from data_user
如果创建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作业来定期运行和删除任何剩下的表.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读