ORA-22992 cannot use LOB locators selected from remote tables

paulyibinyi發表於2008-11-17

在給客戶做資料遷移時,需要從遠端資料庫的一個表插入一些資料過來到本地資料庫

真正使用DBLink時卻碰到一個不小的問題:從遠端資料庫上查詢Blob欄位時總返回ORA-22992錯誤,如下:

select *  from remoteTable@dl_remote;

ORA-22992 cannot use LOB locators selected from remote tables

遠端資料庫的表是有一個圖象的大欄位型別

而在測試時 做 insert 時正常

insert into table_name  select * from ;

使用臨時表也有種解決方法

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

後來還是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>

來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/7199859/viewspace-496144/,如需轉載,請註明出處,否則將追究法律責任。

相關文章