translate的使用

在把一張表數據插入另一張表數據的過程中,數據庫報 ORA-01722無效數字,在經過排查可以確定是因爲某一個字段引起的,

想找到具體哪條記錄的時候沒有好的辦法。自己寫函數來判斷太麻煩,所以研究了下translate函數,發現很好用。

具體用法

         SELECT * FROM 表名 where TRANSLATE(字段名,'x0123456789x','x')  is not null;

這樣就可以查到不是數字的記錄。


原理如下

語法:TRANSLATE(string,from_str,to_str)

說明:返回將(所有出現的)from_str中的每個字符替換爲to_str中的相應字符以後的string。TRANSLATE 是 REPLACE 所提供的功能的一個超集。如果 from_str 比 to_str 長,那麼在 from_str 中而不在 to_str 中的額外字符將從 string 中被刪除,因爲它們沒有相應的替換字符。to_str 不能爲空。Oracle 將空字符串解釋爲 NULL,並且如果TRANSLATE 中的任何參數爲NULL,那麼結果也是 NULL:

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章