Oracle 漢字占用位元組數

2022-07-17 08:33:14 字數 899 閱讀 7166

在oracle中乙個字元特別是中文字元佔幾個位元組是與字符集有關的。

比如gbk,漢字就會佔兩個位元組,英文1個;如果是utf-8,漢字一般佔3個位元組,英文還是1個。但是一般情況下,我們都認為是兩個位元組處理,因為oracle安裝時候預設我們都選擇gbk的編碼格式,但是我們在頁面做輸入字串長度的校驗的時候,還是以資料庫設計字段最大長度除3來作為最大長度-----防止資料庫移植時設定不同編碼格式。

檢視字串占用的字元數:

select length('12中華') from dual;     --4

檢視字串占用的位元組數:

select lengthb('12中華') from dual;   --8

nvarchar2的乙個漢字字元都是占用兩個位元組的,與字符集無關:

select length(n'中華1') from dual;     --3 

select lengthb(n'中華1') from dual;   --6

補充:(1)

查詢字符集語句: select userenv('language') from dual;    (simplified chinese_china.al32utf8)

查詢結果分為三部分: nls_lang = language_territory.charset 它有三個組成部分(語言、地域和字符集), 其中: language 指定伺服器訊息的語言,territory 指定伺服器的日期和數字格式,charset 指定字符集 。

(2)如何檢視oracle的字符集,日期格式,語言等?

sys>show parameter nls;    --得不到具體全面的value

sys>select * from nls_database_parameter;   --nls_database_parameter表才是最詳細的

ORACLE資料庫漢字占用位元組數

oracle資料庫漢字占用位元組數 之前本人認為乙個漢字都是佔兩個位元組的,mssql server如此 至少在我的理解範圍之內,如果有誤還請大家糾正 但是最近在使用oracle資料庫,發現了一些特殊的東西,那就是,當你用兩個函式 分別是length和lengthb,這兩個函式到底是幹什麼用的,我想...

占用位元組數求法

字串占用位元組數 ansi char szstr abc 占用位元組數求法 sizeof szstr char psz defgh 占用位元組數求法 strlen psz sizeof char unicode wchar t szwstr l abc 占用位元組數求法 sizeof szwstr ...

List與陣列占用位元組數

想看一下list序列化後占用多少個 位元組,測試程式如下 public static void main string args throws ioexception system.out.println 元素數 list.size bytearrayoutputstream baos new by...