注册
达梦数据库-错误码-[4705]-分析处理
技术分享/ 文章详情 /

达梦数据库-错误码-[4705]-分析处理

Live 2024/07/05 1551 2 0

问题现象

--源端
CREATE TABLE TEST_DBLINK_LOB(TITLE VARCHAR(100),BODY clob);

DECLARE
    --8192bytes
    long_string CLOB := '目录   
第 2 章 DM 物理存储结构 ...................................6.....'; 
BEGIN
    INSERT INTO TEST_DBLINK_LOB  VALUES ('DM管理员手册', long_string);
    INSERT INTO TEST_DBLINK_LOB  VALUES ('DM管理员手册1', long_string||'y');
END; 

--目标端
create or replace public link "LINK_SYSTEM" connect 'ORACLE' with "SYSTEM" identified by "123456" using '(DESCRIPTION =
(ADDRESS_LIST = (ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.10.113)
(PORT =1521)))
(CONNECT_DATA = (SERVICE_NAME = orcl) )
)';

SELECT body,length(body),lengthb(body) FROM TEST_DBLINK_LOB@LINK_SYSTEM
where title='DM管理员手册1'
--where title='DM管理员手册'

image20240704221322095.png
image20240704221344328.png

问题分析

这个场景需要通过 DBLink 传输大文本数据(CLOB)。DBLINK_LOB_LEN 参数定义了在使用 DBLink 进行跨数据库操作时,传输的大字段数据的最大长度。默认值为8KB。这对于在不同数据库之间传输大数据块非常重要,确保在传输过程中不会出现数据截断的问题。 然而设置较大的 DBLINK_LOB_LEN 值可能会影响网络传输性能,尤其是在网络带宽有限的情况下。

解决办法

DBLINK_LOB_LEN 参数调至16KB。验证不再报错。

SP_SET_PARA_VALUE(1,'DBLINK_LOB_LEN',16);

image20240704222939161.png

评论
后发表回复

作者

文章

阅读量

获赞

扫一扫
联系客服