日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問(wèn) 生活随笔!

生活随笔

當(dāng)前位置: 首頁(yè) > 运维知识 > 数据库 >内容正文

数据库

oracle字符nul怎么输入,oracle - 如何摆脱Oracle数据库中的NUL字符? - 堆栈内存溢出...

發(fā)布時(shí)間:2023/12/10 数据库 33 豆豆
生活随笔 收集整理的這篇文章主要介紹了 oracle字符nul怎么输入,oracle - 如何摆脱Oracle数据库中的NUL字符? - 堆栈内存溢出... 小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

就個(gè)人而言,我會(huì)使用CHR()來(lái)識(shí)別零值。 nul是ASCII 0, CHR()將返回您傳入的數(shù)字的字符表示。

SQL> with the_data as (

2 select 'a' || chr(0) || 'b' as str from dual

3 union all

4 select 'a' || 'c' from dual

5 )

6 select dump(str)

7 from the_data

8 where str like '%' || chr(0) || '%'

9 ;

DUMP(STR)

----------------------------------------------------

Typ=1 Len=3: 97,0,98

正如您所看到的那樣,通過(guò)連接CHR(0)周圍的百分比符號(hào)CHR(0)相當(dāng)于nul),您可以返回帶有nul的行。

DUMP()返回?cái)?shù)據(jù)類型( 1表示VARCHAR2 )字符串的長(zhǎng)度(以字節(jié)為單位)和數(shù)據(jù)的內(nèi)部表示形式; 默認(rèn)為二進(jìn)制。

但是, 您需要注意多字節(jié)數(shù)據(jù),因?yàn)镃HR()返回的數(shù)字的模數(shù)等于256:

SQL> with the_data as (

2 select 'a' || chr(0) || 'b' as str from dual

3 union all

4 select 'a' || chr(256) || 'c' from dual

5 )

6 select dump(str)

7 from the_data

8 where str like '%' || chr(0) || '%'

9 ;

DUMP(STR)

-------------------------------------------------

Typ=1 Len=3: 97,0,98

Typ=1 Len=4: 97,1,0,99

正如你所看到的,你會(huì)錯(cuò)誤地在這里找到一個(gè)nul,使用CHR()或DUMP()

換句話說(shuō),如果您沒(méi)有多字節(jié)數(shù)據(jù),那么最簡(jiǎn)單的方法就是替換它:

update

set = replace(, chr(0));

使用RAWTOHEX()有類似的問(wèn)題; 雖然你可以找到00但不能保證它實(shí)際上是一個(gè)零點(diǎn):

SQL> with the_data as (

2 select 'a' || chr(0) || 'b' as str from dual

3 union all

4 select 'a' || chr(256) || 'c' from dual

5 )

6 select rawtohex(str)

7 from the_data

8 where str like '%' || chr(0) || '%'

9 ;

RAWTOHEX

--------

610062

61010063

它實(shí)際上還有一個(gè)問(wèn)題; 想象你有兩個(gè)字符10和06 ,返回的值是1006 ,你會(huì)找到00 。 如果您要使用此方法,則必須確保僅從字符串的開(kāi)頭查看兩個(gè)字符組。

由于nul字符的內(nèi)部表示用于表示其他多字節(jié)字符的部分,因此您不能只替換它們,因?yàn)槟恢浪且粋€(gè)字符還是半個(gè)字符。 因此,如果您使用多字節(jié)字符集,據(jù)我所知,您將無(wú)法執(zhí)行此操作。

總結(jié)

以上是生活随笔為你收集整理的oracle字符nul怎么输入,oracle - 如何摆脱Oracle数据库中的NUL字符? - 堆栈内存溢出...的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。

如果覺(jué)得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。