您好,登錄后才能下訂單哦!
oracle中如何判斷一個(gè)字符串是否含有漢字
各位技術(shù)愛(ài)好者,看完本文后,你可以掌握如下的技能,也可以學(xué)到一些其它你所不知道的知識(shí),~O(∩_∩)O~:
①全角字符的判斷,或者是含有漢字的字符串的判斷
本文如有錯(cuò)誤或不完善的地方請(qǐng)大家多多指正,ITPUB留言或QQ皆可,您的批評(píng)指正是我寫(xiě)作的最大動(dòng)力。
11.2.0.3 RHEL6.5
看到網(wǎng)友問(wèn),怎么查詢表中某個(gè)字段數(shù)據(jù)是不是包含了全角字符?。?這個(gè)問(wèn)題涉及到幾個(gè)個(gè)函數(shù):to_single_byte、length和lengthb,我之前做開(kāi)發(fā)的時(shí)候研究的是如何判斷一個(gè)字符串中是否包含中文,其實(shí)和這個(gè)本質(zhì)是一樣的,且看實(shí)驗(yàn)部分。
---含有漢字,嚴(yán)格的說(shuō)是含有全角字符
SELECT l.name,
length(l.name),
lengthb(l.name)
FROM xb_link l
WHERE length(l.name) != lengthb(l.name)
AND length(l.name) < 20;
以下數(shù)據(jù)也滿足條件:
SELECT l.id,
l.name
FROM xb_link l
WHERE length(l.name) != lengthb(l.name)
AND l.metacategory IN
('com.gxlu.ngrm.network.DDNCircuit',
'com.gxlu.ngrm.network.FRCircuit',
'com.gxlu.ngrm.network.ATMCircuit',
'com.gxlu.ngrm.network.DDNOCircuit',
'com.gxlu.ngrm.network.FROCircuit')
AND l.id IN ('301898331', '301898335', '301908187', '301929403');
所以可以借助to_single_byte函數(shù)來(lái)解決。
SELECT l.id,
l.name,
to_single_byte(l.name),
length(l.name) l1,
lengthb(l.name) l2,
length(to_single_byte(l.name)) l
FROM xb_link l
WHERE length(l.name) != lengthb(l.name)
AND l.metacategory IN
('com.gxlu.ngrm.network.DDNCircuit',
'com.gxlu.ngrm.network.FRCircuit',
'com.gxlu.ngrm.network.ATMCircuit',
'com.gxlu.ngrm.network.DDNOCircuit',
'com.gxlu.ngrm.network.FROCircuit')
AND l.id IN ('301898331', '301898335', '301908187', '301929403');
SELECT
l.id,
l.name
FROM xb_link l
WHERE regexp_replace(TRIM(l.name),
'([A-Za-z0-9]|[[:punct:]]|[[:space:]])',
'') IS NOT NULL;
---全是漢字
SELECT l.name,
to_multi_byte(l.name)
FROM xb_link l
WHERE l.name = to_multi_byte(l.name);
SELECT l.name,
to_multi_byte(l.name)
FROM xb_link l;
drop table aa;
create table aa (col varchar2(255));
SELECT * FROM aa for update;
SELECT a.col,
to_single_byte(a.col),
length(a.col),
lengthb(a.col),
length(to_single_byte(a.col)),
lengthb(to_single_byte(a.col))
FROM aa a
WHERE (lengthb(a.col) - length(a.col)) <>
(lengthb(to_single_byte(a.col)) - length(to_single_byte(a.col)));
方法很簡(jiǎn)單,網(wǎng)友可能還有其他的辦法,歡迎留言,對(duì)于不同的場(chǎng)景處理方式有很多種,我們應(yīng)該學(xué)會(huì)靈活變通。
...........................................................................................................................................................................................
本文作者:小麥苗,只專注于數(shù)據(jù)庫(kù)的技術(shù),更注重技術(shù)的運(yùn)用
ITPUB BLOG:http://blog.itpub.net/26736162
本文地址:http://blog.itpub.net/26736162/viewspace-1688209/
本文pdf版:http://yunpan.cn/QCwUAI9bn7g7w 提取碼:af2d
QQ:642808185 若加QQ請(qǐng)注明你所正在讀的文章標(biāo)題
創(chuàng)作時(shí)間地點(diǎn):2015-06-05 10:00~ 2015-06-05 13:00 于×××交易中心
<版權(quán)所有,文章允許轉(zhuǎn)載,但須以鏈接方式注明源地址,否則追究法律責(zé)任!>
...........................................................................................................................................................................................
免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如果涉及侵權(quán)請(qǐng)聯(lián)系站長(zhǎng)郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。