關於Oracle資料庫儲存漢字所佔位元組數

2021-07-26 13:42:12 字數 421 閱讀 1298

在使用oracle資料庫作為專案資料庫進行專案開發的時候,我們往往會將漢字新增到資料庫中,有時候會因為所給字段的長度不足,導致在將漢字存入資料庫中的時候會丟擲」數字或值錯誤 :  字串緩衝區太小「,返回來檢視所插入的資料,發現長度並沒有超出欄位的給定長度,這是怎麼回事,其實既然程式已經丟擲這個錯了,那麼說明你定義的字段的長度是有問題的,接下來我們排查這個問題。

1、檢視oracle資料庫的字符集編碼select * from nls_database_parameters d where d.parameter='nls_characterset'; 

2、如果編碼格式是al32utf8或者utf8,那麼在這種編碼格式下乙個漢字所占用字元長度就是3個長度;如果編碼格式是zhs16gbk,那麼乙個漢字占用長度就是2

3、根據編碼格式設定欄位的長度,就能盡量避免字段超長這種問題

mysql 資料庫varchar儲存漢字

具體還是要看版本的 4.0版本以下,varchar 100 指的是100位元組,如果存放utf8漢字時,只能存33個 每個漢字3位元組 5.0版本以上,varchar 100 指的是100字元,無論存放的是數字 字母還是utf8漢字 每個漢字3位元組 都可以存放100個。自己在資料庫中建個表測試下可...

mysql資料庫varchar儲存漢字

具體還是要看版本的 4.0版本以下,varchar 100 指的是100位元組,如果存放utf8漢字時,只能存33個 每個漢字3位元組 5.0版本以上,varchar 100 指的是100字元,無論存放的是數字 字母還是utf8漢字 每個漢字3位元組 都可以存放100個。自己在資料庫中建個表測試下可...

oracle資料庫中文漢字排序

oracle資料庫中文漢字排序 今天需要按oracle資料庫中某個表的某個中文字段進行排序,本來感覺挺簡單的乙個東西,不就是乙個order by嘛,可是寫完了發現拍的並不對,一時間感到不可思議,又查詢,發現果然有這個問題,經過查資料發現,oracle對中文的排序是按照asc碼的值進行排序的,後來又經...