顯示具有 SQL語法實例分享 標籤的文章。 顯示所有文章
顯示具有 SQL語法實例分享 標籤的文章。 顯示所有文章

2012年6月13日 星期三

SQL語法--Unicode長度的取得

現在為了因應全球化的趨勢,越來越多公司採用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

2012年6月8日 星期五

SQL語法實例分享--UPDATE進階

ERP在導入的過程中,經常會發生導入資料庫後的資料需要做整批調整,這時候對很多IT人員來說,真是一大工程,資料少的還可以匯出Excel,請User調整後,再重新匯入。

但如果資料筆數過多時,透過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))


但是敬告各位同業,這雖然很有效率,但指令一下,資料就改了,所以要謹慎小心使用。