首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何使用触发器中的dblink将CLOB列从一个表更新到另一个表?

如何使用触发器中的dblink将CLOB列从一个表更新到另一个表?
EN

Stack Overflow用户
提问于 2020-10-10 15:24:43
回答 1查看 202关注 0票数 0

我在Oracle数据库中有两个表,其中一个我正在尝试更新,它位于另一个使用dblink连接的数据库上。在我的表中有两个CLOB类型的列。我正在一个数据库中编写一个触发器,它应该将新的CLOB列的值更新到远程数据库上的远程表中。当我想要更新Clob列时,我得到以下错误:

SQL错误: ORA- 02055 :分布式更新操作失败;需要回滚ORA-22992:无法使用从远程表ORA-04088中选择的LOB定位器:执行触发器'SPECTRA.REPORT_UPDATE‘02055时出错。00000 -“分布式更新操作失败;需要回滚”*原因:分布式更新操作期间的失败可能没有回滚操作的所有效果。由于某些站点可能不一致,事务必须回滚到保存点或完全回滚*操作:回滚到保存点或回滚事务并重新提交

如何更新远程数据库中CLOB列的值?

EN

回答 1

Stack Overflow用户

发布于 2020-10-11 06:08:27

你有没有尝试过使用DBMS_LOB包?即函数

代码语言:javascript
复制
  DBMS_LOB.COPY (
  dest_lob    IN OUT NOCOPY BLOB,
  src_lob     IN            BLOB,
  amount      IN            INTEGER,
  dest_offset IN            INTEGER := 1,
  src_offset  IN            INTEGER := 1);

或者

代码语言:javascript
复制
DBMS_LOB.COPY ( 
  dest_lob    IN OUT NOCOPY CLOB  CHARACTER SET ANY_CS,
  src_lob     IN            CLOB  CHARACTER SET dest_lob%CHARSET,
  amount      IN            INTEGER,
  dest_offset IN            INTEGER := 1,
  src_offset  IN            INTEGER := 1);

https://docs.oracle.com/cd/B28359

或者粘贴你的代码...

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/64291031

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档