目次 前項目  次項目

2.5 キャラクタセット

データタイプを、CHAR、VARCHAR、またはサブタイプが1(テキスト)の BLOB として定義するフィールドには、オプションとしてキャラクタセットを指定する ことができます。
Linux上のデータベースを、異なる日本語コード系を持つシステム(UNIX、Windows など)で同時に使う場合があります。このような利用形態で、文字列フィールド へのデータ挿入、取り出しを行う際に、自動的に適切な文字コード(EUC またはシフトJISコード)に変換する機能をInterBaseは提供しています。
この機能を使う時には、文字列フィールドにキャラクタセットを指定して おかなければなりません。

文字列フィールドには、指定されたキャラクタセットで文字列が格納されます。 この文字列をあるアプリケーションが取り出す際には、そのアプリケーションが データベースに接続する時に指定したキャラクタセットに変換されます。また、 文字列を挿入する際には、その逆の変換が行われます。


日本語を扱うシステムに関係のある指定可能なキャラクタセットには、 以下のものがあります。
キャラクタセット 最大文字サイズ 説明
ASCII 1バイト ASCIIコードの文字列を格納することができます。
EUCJ_0208 2バイト EUCの文字列を格納することができます。
SJIS_0208 2バイト シフトJISコードの文字列を格納することができます。
UNICODE_FSS 3バイト ユニコードの文字列を格納することができます。


【使用例】

キャラクタセットを指定した文字列フィールドを定義する場合には、以下の ように定義文を記述します。(EUCを指定する場合の例です。)
CREATE TABLE sights
(
    prefecture   CHAR(10)         CHARACTER SET EUCJ_0208,
    sight_name   VARCHAR(20)      CHARACTER SET EUCJ_0208,
    guide        BLOB SUB_TYPE 1  CHARACTER SET EUCJ_0208
) ;
この例の「prefecture」、「sight_name」には、それぞれ20バイト、40バイトの 文字列を格納することができます。CHAR(n)、VARCHAR(n)は、キャラクタセットを 指定する場合、そのキャラクタセットの文字をn文字格納できることを表します。


【注意事項】

何も指定しないで、CHAR、VARCHAR、サブタイプ1のBLOBを定義した場合は、 キャラクタセットはNONEに設定されます。これは、キャラクタセットが 定義されていない状態を表します。

目次 前項目  次項目

InterBase for Linux & FreeBSD Copyright(c) 1998 RIOS Corporation