oracle varchar2字段中的亂碼數據提取


由於工作需要,在遷移一批數據時發現一張表的varchar2字段本應該由數字組成,但出現了亂碼。如下圖。

現在就是要把這幾十萬數據中的亂碼數據提取出來。

問了下度娘,他老人家告訴我用這個函數:translate

以下是這個函數的說明 :

http://www.2cto.com/database/201110/109385.html 

廢話不多說開工。

1 create table temp_color_group_new as
2 select t.color_group_no,
3        translate(t.color_group_no, '9876543210', ' ') as new_no,
4        t.svc_inst_id
5   from temp_color_group t;

translate(t.color_group_no, '9876543210', ' ') as new_no

這里的color_group_no是可能出現的亂碼字段,

 '9876543210':根據實際情況變更,本場景為color_group_no只可能是數字組成,如果有字母的話再加上就好。如果有漢字呢?⊙﹏⊙b汗~~沒研究了,那位有高人有着告訴我一下哈。。學習學習。

' ':這里是個空格,不要定義為空''否則轉換后的新號碼都是null了。。也可以定義成特殊字符如“_”不過,后面轉換稍麻煩點。。

創建好臨時表temp_color_group_new 這個后,再將空格trim掉。

update  temp_color_group_new  set new_no = trim(new_no) ; 

此時new_no字段符合數字規則的應該都變成null了 is not null的都是亂碼數據或者有特殊字符的數據如換行符等。

OK 搞定。。。 高人莫噴。。。

 


免責聲明!

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



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