由 “無法使用從遠程表選擇的 lob 定位符” 錯誤而引導出來的一系列問題解決方案


周一上班遇到一個數據加工問題:無法使用從遠程表選擇的 lob 定位符,由於數據源表不是自己的,不能對源數據做修改,於是我打起了存儲過程的主意

我們公司的存過是分三步走,第一層是同步源數據,第二層是對一層的初加工,第三層則是細加工。由於問題出在第一層,字段不匹配,所以在理清了各

個表之間的關系后,確定了修改字段數據類型的解決方案。(底層表在在第二層用到的地方太多了,由於一二層是對應關系,所以一修改了,二也得改,

工程浩大啊!!!!)

第一層表數據類型修改很簡單,直接alter table *** modify (123,clob),沒有報錯!!!

去第二層修改,同樣用alter table *** modify (123,clob),立馬報錯:ORA-22858 數據類型的變更無效!!!(不清楚什么原因)

因為甲方催的急,沒時間去仔細分析原因,所以當時想了一個簡單的辦法:新建,替換!!!

1、在原表中添加一個新的clob字段

alter table *** add 123 clob;

2、將原字段的值賦給新字段

update *** set 123 = 321;

3、刪除原字段

alter table *** drop column 321;

4、修改新字段名

alter table *** rename column 123 to 321;

5、大功告成!!

萬幸的一點是,這張表數據量不是很大!!!數據量太大這個方法就不太適用了!!!

總結:處理問題,一定要學會“曲線救國”!!!謝謝!!!

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM