oracle字段中找出字段中含有非數字的方法!!!

1.在oracle中字段中找出漢字的方法:可以利用length(testname)和lengthb(testname),其中length(testname)不論數字或者字符都算一個,而lengthb則不同,比如說testname的值爲:54看法12,用length(testname)的值爲6,而lengthb(testname)的值爲:8。利用這個就可以非常清楚的判斷一個字符中是否包含漢字了(字母除外)。

例子:

 SELECT 'length的值爲:' || LENGTH(TESTNAME) || '===>>>lengthb的值爲:' || LENGTHB(TESTNAME) AS NAME_LENGTH, TESTNAME FROM OLD_TEST_TABLE


 

以上很清楚的看出length跟lengthb的不同了吧,用這個可以知道某個字段中是不是存在漢字。

 

2. 可以利用oracle中的正則regexp_like(in_code, '^(-{0,1}+{0,1})[0-9]+(.{0,1}[0-9]+)$')找出某字段中是不是存在非數字。

    特殊的是我今天居然遇到了全角的數字,這樣的如果在去to_number(filed)的時候就會報錯,想把一些全角數字轉換成半角的數據,例子如下:

    利用oracle的 to_single_byte 這個函數就可以解決問題 比如:

UPDATE ARCHIVES_IN T1
          SET T1.IN_CODE = (SELECT TO_SINGLE_BYTE(T2.IN_CODE)
                              FROM ARCHIVES_IN T2
                             WHERE T1.IN_ID = T2.IN_ID)
        WHERE NOT REGEXP_LIKE(T1.IN_CODE,
                              '^(-{0,1}+{0,1})[0-9]+(.{0,1}[0-9]+)

 

但是有個問題,如果這個in_code字段中只有一個全角數字的話,需要手動的去修改一下。如果有其它好辦法咱們一起溝通!!!

 

O(∩_∩)O哈哈~



 

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