Oracle では中国語の文字は何バイトを占めますか?

        データテーブルの特定のフィールドの長さが不十分であることがよくありますか? 一般に、文字列を格納する場合は VARCAHR2 型を使用します。VARCHAR2 には 2 つの用途があります。1 つは VARCHAR2 (10 バイト)、もう 1 つは VARCHAR2 (10 文字) です。前者はデフォルト値で 10 バイトを意味し、後者は 10 文字を意味します。

       中国語の文字が占めるバイト数は、Oracle ライブラリの文字セットに関係します。文字セットが ZHS16GBK の場合、1 つの漢字は 2 バイトを占有し、文字セットが AL32UTF8 の場合、1 つの漢字は 3 バイトを占有します

        Oracle の文字セットを見ると、次のようになります。

        

SELECT * FROM v$nls_parameters WHERE PARAMETER='NLS_CHARACTERSET';

        現在のデータベースの文字セットをチェックしたくないが、現在の Oracle ライブラリ内で中国語の文字が何バイトを占めているかを知りたい場合は、lengthb() 関数を使用できます。文字は現在のデータベースに存在します

        length() 関数は、現在の文字列が占める文字数、つまり文字列の長さをチェックします。

select  lengthb('中国')  from dual; // 6个字节

Supongo que te gusta

Origin blog.csdn.net/dhklsl/article/details/132831439
Recomendado
Clasificación