[英]How to update CLOB column from a table to another table using dblink in a trigger?
我在 Oracle 數據庫中有 2 個表,其中一個我要更新的表位於使用 dblink 連接的另一個數據庫上。 在我的表中有兩列 CLOB 類型。 我正在一個數據庫中編寫一個觸發器,該觸發器應該將新的 CLOB 列的值更新到遠程數據庫上的遠程表。 當我想更新 Clob 列時,出現以下錯誤:
SQL 錯誤:ORA-02055:分布式更新操作失敗; 需要回滾 ORA-22992:無法使用從遠程表中選擇的 LOB 定位器 ORA-04088:執行觸發器 'SPECTRA.REPORT_UPDATE' 02055 期間出錯。00000 - “分布式更新操作失敗;需要回滾” *原因:分布式更新操作期間失敗可能沒有回滾操作的所有效果。 由於某些站點可能不一致,事務必須回滾到保存點或完全 *Action:回滾到保存點或回滾事務並重新提交
如何更新遠程數據庫中 CLOB 列的值?
您是否嘗試過使用 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_01/appdev.111/b28419/d_lob.htm#i997674
或者粘貼你的代碼...
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.