現在為了因應全球化的趨勢,越來越多公司採用Unicode的編碼模式做為資料庫的編碼,不只可以補足BIG-5不足,還可以整合與編碼大部份文字系統。
但因Unicode並不如BIG-5的編碼長度是固定的,所以有時需判斷資料可能的長度,才能建置出正確且實用的資料庫欄位長度。特別是在由外部資料導入Unicode資料庫時,若不知道實際資料長度,很可能會導致資料匯入失敗。
所以,這邊介紹在UTF-8的編碼下,下列兩個語法可以取出資料庫欄位的Unicode實際長度,與字數:
1. lengthb=vsize:抓取unicode的實際長度
例:Select lengthb(ima02) from ima_file
Select vsize(ima02)
from ima_file
2. lengthc=length:抓取有幾個文字數(此處的中文字與英文字母各計一個字)
例:select length(ima02) from ima_file
Select lengthc(ima02) from ima_file
註:unicode的詳細介紹可參考Wiki網站: http://zh.wikipedia.org/wiki/Unicode
Blog內容主要以討論TIPTOP、ERP相關議題為主,希望對於TIPTOP的入門者有所幫助。文中所有提到的程式碼與畫面版權均屬鼎新電腦或其相關公司所有!有任何問題也可以發mail互相交流:sjchen.erp@gmail.com
2012年6月13日 星期三
2012年6月8日 星期五
SQL語法實例分享--UPDATE進階
ERP在導入的過程中,經常會發生導入資料庫後的資料需要做整批調整,這時候對很多IT人員來說,真是一大工程,資料少的還可以匯出Excel,請User調整後,再重新匯入。
但如果資料筆數過多時,透過Excel處理的效能就顯得差了一點,最有效率的方式,當然是透過SQL指令直接調整。
說真的,我的SQL功力很差,指令都是朋友指導的,提供給大家做參考而已囉!
在固定第九碼之後插入一個0
但是敬告各位同業,這雖然很有效率,但指令一下,資料就改了,所以要謹慎小心使用。
但如果資料筆數過多時,透過Excel處理的效能就顯得差了一點,最有效率的方式,當然是透過SQL指令直接調整。
說真的,我的SQL功力很差,指令都是朋友指導的,提供給大家做參考而已囉!
在固定第九碼之後插入一個0
update pmn_file set
pmn01=substr(pmn01,1,9)||'0'||substr(pmn01,10,12)
where length(pmn01)=13
在第一碼前塞入一個A
update cpf_file set
cpf30='A'|substr(cpf30,1,length(cpf30))
但是敬告各位同業,這雖然很有效率,但指令一下,資料就改了,所以要謹慎小心使用。
訂閱:
文章 (Atom)



