PL/SQL中文字長度切割
Author: Raymond
Date:2012/05/07
中文字在 PLSQL DB 裡佔了3個char的位子,利用這個特性我們算出正確欲結束的字元位址並製成一個Function供大家參考
中文字在 PLSQL DB 裡佔了3個char的位子,利用這個特性我們算出正確欲結束的字元位址並製成一個Function供大家參考
/*********************************************************
2012.03 Raymond / Willie Chou
Input Parameter - 1: 輸入字串, 2. 長度限制
Output
parameter: 切字串的位置 substr(input_string,
1, output_parameter);
***********************************************************/
function split_loc(
input_str varchar2, -- input string,
limit_byte number) -- length limitation (in bytes)
return number -- split location
is
loc number(5);
max_len number(5);
begin
loc := trunc(length(limit_byte) / 3);
max_len := length(input_str);
loop
exit when
lengthb(substr(input_str,1,loc+1)) > limit_byte or (loc + 1) > max_len;
loc := loc + 1;
end loop;
return loc;
end;
沒有留言:
張貼留言