我在Oracle数据库中有两个表,其中一个我正在尝试更新,它位于另一个使用dblink连接的数据库上。在我的表中有两个CLOB类型的列。我正在一个数据库中编写一个触发器,它应该将新的CLOB列的值更新到远程数据库上的远程表中。当我想要更新Clob列时,我得到以下错误:
SQL错误: ORA- 02055 :分布式更新操作失败;需要回滚ORA-22992:无法使用从远程表ORA-04088中选择的LOB定位器:执行触发器'SPECTRA.REPORT_UPDATE‘02055时出错。00000 -“分布式更新操作失败;需要回滚”*原因:分布式更新操作期间的失败可能没有回滚操作的所有效果。由于某些站点可能不一致,事务必须回滚到保存点或完全回滚*操作:回滚到保存点或回滚事务并重新提交
如何更新远程数据库中CLOB列的值?
发布于 2020-10-11 06:08:27
你有没有尝试过使用DBMS_LOB包?即函数
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);或者
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
或者粘贴你的代码...
https://stackoverflow.com/questions/64291031
复制相似问题