中文字幕av专区_日韩电影在线播放_精品国产精品久久一区免费式_av在线免费观看网站

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

oracle中如何判斷一個字符串是否含有漢字

發布時間:2020-06-08 06:00:49 來源:網絡 閱讀:888 作者:小麥苗best 欄目:關系型數據庫

oracle中如何判斷一個字符串是否含有漢字

一.1 BLOG文檔結構圖

oracle中如何判斷一個字符串是否含有漢字

一.2 前言部分
一.2.1 導讀

各位技術愛好者,看完本文后,你可以掌握如下的技能,也可以學到一些其它你所不知道的知識,~O(∩_∩)O~:

①全角字符的判斷,或者是含有漢字的字符串的判斷

本文如有錯誤或不完善的地方請大家多多指正,ITPUB留言或QQ皆可,您的批評指正是我寫作的最大動力。

一.2.2 實驗環境介紹

11.2.0.3  RHEL6.5

一.2.3 本文簡介

看到網友問,怎么查詢表中某個字段數據是不是包含了全角字符啊? 這個問題涉及到幾個個函數:to_single_byte、length和lengthb,我之前做開發的時候研究的是如何判斷一個字符串中是否包含中文,其實和這個本質是一樣的,且看實驗部分。

oracle中如何判斷一個字符串是否含有漢字

一.3 實驗部分
一.3.1 lengthb和length函數結合to_single_byte函數

---含有漢字,嚴格的說是含有全角字符

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;

oracle中如何判斷一個字符串是否含有漢字

以下數據也滿足條件:

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');

oracle中如何判斷一個字符串是否含有漢字

所以可以借助to_single_byte函數來解決。

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');

oracle中如何判斷一個字符串是否含有漢字

一.3.2 regexp_replace --替換其它字符為’’

SELECT

l.id,

l.name

FROM   xb_link l

WHERE  regexp_replace(TRIM(l.name),

'([A-Za-z0-9]|[[:punct:]]|[[:space:]])',

'') IS NOT NULL;

oracle中如何判斷一個字符串是否含有漢字

一.3.3 to_multi_byte 函數--全是全角字符

---全是漢字

SELECT l.name,

       to_multi_byte(l.name)

FROM   xb_link l

WHERE  l.name = to_multi_byte(l.name);

oracle中如何判斷一個字符串是否含有漢字

SELECT l.name,

       to_multi_byte(l.name)

FROM   xb_link l;

oracle中如何判斷一個字符串是否含有漢字

一.3.4 網友問題解答:某個字段數據是不是包含了全角字符?

drop table aa;

create table aa (col   varchar2(255));

SELECT * FROM aa for update;

oracle中如何判斷一個字符串是否含有漢字

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)));

oracle中如何判斷一個字符串是否含有漢字

一.4 總結

方法很簡單,網友可能還有其他的辦法,歡迎留言,對于不同的場景處理方式有很多種,我們應該學會靈活變通。

一.5 About Me

...........................................................................................................................................................................................

本文作者:小麥苗,只專注于數據庫的技術,更注重技術的運用

ITPUB BLOG:http://blog.itpub.net/26736162

本文地址:http://blog.itpub.net/26736162/viewspace-1688209/

本文pdf版:http://yunpan.cn/QCwUAI9bn7g7w 提取碼:af2d

QQ:642808185 若加QQ請注明你所正在讀的文章標題

創作時間地點:2015-06-05 10:00~ 2015-06-05 13:00 于×××交易中心

<版權所有,文章允許轉載,但須以鏈接方式注明源地址,否則追究法律責任!>

...........................................................................................................................................................................................

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

永宁县| 全州县| 潼关县| 徐闻县| 宁波市| 宁安市| 尖扎县| 固镇县| 阳信县| 甘德县| 祥云县| 克山县| 波密县| 黑河市| 平凉市| 太和县| 合水县| 晋中市| 贵定县| 错那县| 昌黎县| 奈曼旗| 郑州市| 光泽县| 婺源县| 嵊泗县| 项城市| 江阴市| 南丰县| 伊川县| 二连浩特市| 桦川县| 合肥市| 嘉兴市| 白河县| 辽源市| 宜春市| 枝江市| 郯城县| 视频| 四子王旗|