1. 程式人生 > >oracle中更新字元型資料中的純數字為定長(不足左邊補0)

oracle中更新字元型資料中的純數字為定長(不足左邊補0)

之前需求文件的錯造成了原本3位數的數字不是定長的,後來發現需求文件把需求記錯了,這個欄位中的純數字必須是3位的.
這個欄位目前已有數千行資料,有字母組合,字母數字組合及純數字,位數都不是定長的. 所以只能寫個指令碼來更新,但oracle中是沒有判斷是否是數字或字母型別的字元型資料的函式的.只能用變通一下了.完整的例子如下(更新所有typecode='fenju'的資料行中的codevalue欄位,保證原有純數字的字元型資料變成定長3位的):
Update Intf_Datadict t Set t.codevalue=
(Case lower(t.codevalue)
 When upper(t.codevalue) Then

      Case length(t.codevalue)
        When 3 Then t.codevalue
        When 2 Then '0'||t.codevalue
        When 1 Then '00'||t.codevalue
      End
 Else t.codevalue    
End
)
Where t.typecode='fenju';