2017年1月6日 星期五

[程式類]-PLSQL(oracle)中字字碼RDAP 字數算錯

在PLSQL 若採用RDAP 想輸出固定字數的字元時我們通常採用;

LDAP(Col, 10, ' ')

Col指的是欄位,
10表示固定10碼
' '表示要填不足碼的值
LDAP指左補' ',表示此欄位靠右;RDAP則反之

但是若Col裡的值是中文字時, 這時就要注意"難字"的問題

例:

LDAP('這是測式堃',10,' ')

這時它會誤判堃這個字,會造成所要的結果和你想的不一樣,

中文若要輸出固字的字數,則要使用DECode方法來避免這個問題產生

RPAD(DECODE('這是測式堃', NULL, ' ' , '這是測式堃'), 10, ' ')