未分類

Oracle文字コード

投稿日:

Oracle文字コードについて

マルチバイト・キャラクタセット

 

VARCHAR2とNVARCHAR2

CHAR(10)

VARCHAR2(10)

10バイト指定。

データベースキャラクタセットで格納される。

VARCHAR2(10 CHAR)

10文字指定。

データベースキャラクタセットで格納される。

NCHAR(10)

NVARCHAR2(10)

10文字指定。

各国語キャラクタセット(事実上、AL16UTF16)で格納される。各国語キャラクタ・セットに使用できるOracleキャラクタ・セットは、AL16UTF16およびUTF8です。各国語キャラクタ・セットをUTF8に指定するのは、推奨されいない。

AL16UTF16の場合、サロゲートペアを2文字とカウントとする。

 

各国語キャラクタ・セット

 

環境変数NLS_LANG

  • LS_LANGとは、多言語環境の動作設定を規定するパラメータ
  • 設定する値自体は、データベースキャラクタセットと同じにするのではなく、クライアント環境がサポートしているキャラクタセットを指定する
  • データベースキャラクタセットとNLS_LANGのキャラクタセットが異なる場合は、Oracleは自動的に文字コードの変換を行います。Unicodeを経由してデータベースキャラクタセットからNLS_LANGのキャラクタセットへの文字コード変換が実行される。

 

Oracle Databaseのキャラクタ・セット「UTF8」

Oracle Databaseのデータベース・キャラクタ・セットで使用するUTF-8エンコーディングとしては、UTF8は候補とせず、最新のUnicodeに追随するAL32UTF8を使っておけば問題無し

 

補助文字(追加文字)とサロゲートペア

Unicodeに含まれる文字は、「U+xxxx」という形式のコードポイントで管理されています。コードポイントの範囲はさらに2つに分類されています。1つは、U+0000~U+FFFFの範囲を指す基本多言語面(BMP:Basic Multilingual Plane)、もう1つは、U+10000~の範囲を指す補助(追加)多言語(SMP:Supplementary Multilingual Plane)です。JIS X 0208のすべての文字は基本多言語面に割り当てられていますが、JIS X 0213で追加された文字は、基本多言語面と補助(追加)多言語面のいずれかに割り当てられています。ここで、補助(追加)多言語面に割り当てられた文字を、補助文字(追加文字)と呼びます。

 

 

 

スポンサーリンク

スポンサーリンク

-未分類

執筆者:

関連記事

C#のタスク注意事項

  バックグラウンドタスクで発生した例外 タスクの例外処理に関しては、.NET 4.5で大きな仕様変更が発生している。 バックグラウンドタスクの完了を待機する(awaitキーワードやWait ...

Objective-Cについて

  イニシャライザ Objectiv-cにはコンストラクターがありません。 その代わり、オブジェクトをインスタンス化した場合は、直後に init メッセージを送信しなければなりません。 この ...

C言語その他

グローバル変数のstatic属性 グローバル変数にstaticを付けた時のstaticは「静的」という意味ではなく、スコープが「宣言位置からそのコンパイル単位の終わりまで」となる。 第10回目 4大メ ...

C++のクラス

メンバ変数   メンバ変数がクラスの場合の初期化 クラスのメンバ変数が引数付きのコンストラクタの場合、メンバイニシャライザを使ってコンストラクタを呼び出す。 クラスのメンバ変数の引数付きのコ ...

C++のTIPS

・それ、ポインタ使わなくてもできるよ:C言語のポインタとC++の流儀 ・【C言語/C++】 配列は戻り値にできない【配列を適切に返す方法】    


プロフィール
管理人です。 業務プログラムに勤しむ人です プロフィール詳細


検索

カテゴリ

アーカイブ