通過臨時表從DBLink中獲取Blob物件

2021-08-31 05:06:10 字數 713 閱讀 7400

做系統整合時,通過database link共享資料是不錯的選擇。不過真正使用dblink時卻碰到乙個不小的問題:從遠端資料庫上查詢blob欄位時總返回ora-22992錯誤,如下:

select blobcolumn from remotetable@dl_remote;

ora-22992: 無法使用從遠端表選擇的 lob 定位器

查詢了一下解決方法,有人提出了採用物化檢視可以解決這個問題。物化檢視唯一的缺陷在於同步機制的問題,如果同步時間設定過短,則占用大量的系統資源,給伺服器帶來極大的壓力;如果設定時間過長,前台使用者不可接受。

後來還是asktom給出了極好的解決方案:使用全域性臨時表。

sql> create global temporary table foo

2 (

3 x blob

4 )

5 on commit delete rows;

table created

sql> insert into foo select blobcolumn from remotetable@dl_remote where rownum = 1;

1 row inserted

sql>

插入本地臨時表之後,在本地的操作就沒有任何問題了。

至於為什麼臨時表可以直接插入,而永久表為什麼不能插入,本人未做具體研究,tom也沒有說明。

通過dblink快速同步ogg表

適用場景 表資料量不大,並且較長時間不變化 10分鐘以上 目標端到源端有dblink 源端 新增表日誌 dblogin userid password add trandata 抽取和推送程序新增表 重啟抽取和推送程序 從源端pl sql提取建表sql語句 目標端 根據建表語句建立空表。複製程序新增...

Oracle中臨時表

最近考慮到我們的資料庫端寫儲存過程關於臨時表使用的情況,由於我們 現在還不清楚資料庫端到底是怎麼處理的,是否和sql server的處理方式相 同,是否會存在隱患等等一些問題,為了避免將來不必要的麻煩我做了深 入的研究和檢視了一些權威的資料,現在和大家共享,希望大家在處理 oracle臨時表是注意一...

Oracle中臨時表

最近考慮到我們的資料庫端寫儲存過程關於臨時表使用的情況,由於我們 現在還不清楚資料庫端到底是怎麼處理的,是否和 sql server 的處理方式相 同,是否會存在隱患等等一些問題,為了避免將來不必要的麻煩我做了深 入的研究和檢視了一些權威的資料,現在和大家共享,希望大家在處理 oracle 臨時表是...