当前位置: 首页 > 面试题库 >

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

司徒隐水
2023-03-14
问题内容

如果创建Oracle dblink,则无法直接访问目标表中的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

这是有据可查的限制。

同一页上建议您将值提取到本地表中,但这有点…杂乱无章:

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

还有其他想法吗?


问题答案:

是的,这很混乱,不过我想不出办法避免这种情况。
您可以通过将临时表创建放入存储过程中(并使用“立即执行”来创建它们)表来隐藏客户端的一些混乱情况,
您需要注意的一件事是临时表(如果失败)在会话进行到一半之前,没有时间清理它)-您可以安排一个oracle作业来定期运行并删除所有剩余的表。



 类似资料:
  • 目前,我的应用程序的某些部分在将大量数据加载到报告表时遇到了速度问题。报告表中的数据是从多个表中提取的,并运行一些复杂的查询,但这是必需的。 除了优化代码,我的问题是,您个人如何处理需要向用户显示的大量数据,最佳实践是什么? 目前我正在处理所有的数据,然后通过javascript库生成数据表。 我知道的事情: 用户不需要一次看到所有数据 用户需要能够搜索所有数据 用户需要能够过滤数据 最好的方法真

  • 问题内容: 管理数据库更改的最佳方法是什么?无论数据库客户端的语言如何,我都需要一个解决方案。我还希望能够在那些更改中使用特定的数据库功能,例如存储过程,触发器等。 问题答案: 首先,请确保您已编写了完整的数据库构建脚本,以便可以根据需要重建数据库。 然后,应将每个更改写为更新脚本。这样,您可以针对数据库分别运行每个更改。 将更改提交到代码库后,将更改脚本与构建过程合并,使其自动发生…然后将更改脚

  • 问题内容: 在MySQL数据库中存储IP地址的最佳字段类型和长度是什么? IPv6呢? 问题答案: 将IP存储为,然后使用和功能存储/检索IP地址。 样例代码:

  • 问题内容: 我有一个用Go编写的Web服务,目前我将这个Global包导入到任何地方,其中包含与MongoDB的连接(通过MGO),但是我不得不说这对我来说非常讨厌。在Go中维护与数据源的连接的最佳实践是什么?我来自PHP世界,因此来自Global:S 问题答案: 导入一个将初始化对象导出为包级别变量或通过访问器/初始化程序导出的包没有错。后者也许对古典“ OOP主义者”更具吸引力。

  • 我正在做我的第一个react项目,我有一个问题。 使用,在react中处理和存储数据的最佳方法是什么? 我当前的工作流程: 在 将数据存储在(例如在中作为子对象` 使用控件的属性中的数据,如

  • 分布式支持 数据访问层支持分布式数据库,包括读写分离,要启用分布式数据库,需要开启数据库配置文件中的deploy参数: return [ // 启用分布式数据库 'deploy' => 1, // 数据库类型 'type' => 'mysql', // 服务器地址 'hostname' => '192.168.1.1,19