Hitachi

ノンストップデータベース HiRDB Version 10 SQLリファレンス


1.1.5 SQLで使用できる文字

SQLで使用できる文字を次の表に示します。

表1‒1 SQLで使用できる文字

種 別

SQLで使用できる文字

文字列定数

半角文字コード(X'00'を除く)

各国文字列定数

全角文字コードのすべての文字

混在文字列定数

半角文字コード(X'00'を除く),及び全角文字コードのすべての文字

上記以外

  • 次に示す半角文字コードの文字

    英大文字(A〜Z,\,@,#)

    英小文字(a〜z)

    数字(0〜9)

    空白

    下線文字(_)

    片仮名文字

  • 全角文字コードのすべての文字

  • 次に示す特殊記号(半角文字コード)

    コンマ(,)

    ピリオド(.)

    ハイフン又は負符号(−)

    正符号(+)

    アスタリスク(*)

    アポストロフィ(')

    引用符(")

    左括弧(( )

    右括弧( ))

    小なり演算子(<)

    大なり演算子(>)

    等号演算子(=)

    サーカムフレックス(^)

    感嘆符(!)

    斜線(/)

    疑問符(?)

    コロン(:)

    セミコロン(;)

    パーセント(%)

    垂直棒(|)

    左角括弧([)

    右角括弧(])

    TAB(X'09')

    NL(X'0a')

    CR(X'0d')

SQLで使用できる文字は,pdsetupコマンドで指定した文字コード種別によって異なります。pdsetupコマンドについては,マニュアル「HiRDB コマンドリファレンス」を参照してください。

使用できる文字には,半角文字と全角文字があって,それぞれ使用できるコードが異なります(UNIX版の場合,単一バイト文字コードには全角文字はありません)。指定した文字コード種別と使用する文字の関係は,次のとおりです。

指定した文字コード

半角文字

全角文字

備 考

複数バイト

文字コード

sjis※3

(シフトjis漢字)

JISX0201

JISX0208

全角文字に外字を含みます。

ujis※2

(EUC日本語漢字)

JISX0201

JISX0208

全角文字に外字を含みません。※1

chinese

(EUC中国語漢字)

ISO-8859-1

(80〜FFを除きます)

GB2312-80

全角文字に外字は含みません。※1

utf-8※3※4※6

(Unicode(UTF-8))

JISX0221

JISX0221

全角文字に外字を含みます。ASCIIコードの範囲では,ほかの文字コードと差異はありませんが,1文字が6バイト※5となることがあります。

MS-Unicode

MS-Unicode

utf-8_ivs※3※4※6

(Unicode(IVS対応UTF-8))

JISX0221

JISX0221

全角文字に外字を含みます。ASCIIコードの範囲では,ほかの文字コードと差異はありませんが,1文字が10バイト※5となることがあります。

MS-Unicode

MS-Unicode

(異体字を含む)

chinese-gb18030

(中国語漢字GB18030)

ISO-8859-1

(80〜FFを除きます)

GB18030-2000

全角文字に外字を含みます。ASCIIコードの範囲では,ほかの文字コードと差異はありませんが,1文字が4バイトになることがあります。

単一バイト

文字コード

lang-c※2

(8ビットコード)

各コードに従います。

US ASCII,及び8ビットコードの場合に使用できます。

(凡例)

−:該当する内容はありません。

注※1

EUCコードセット3((8F)16(xxxx)16の3バイトで表現される文字コード)に割り当てられた外字コードは使用できません。

注※2

Windows版の場合は使用できません。

注※3

JavaのUAPとHiRDB,又はHiRDBとJavaルーチンの間で,日本語データをStringクラス及びそれを継承したクラスを介して受け渡す場合,Javaの文字コードのマッピング規則(該当する文字コードとUnicode)に従います。このとき,外字コードが正しく変換されないことがあるため,注意してください。

注※4

HiRDBでは,UTF-8のエンコードルールだけを意識し,コードと文字のマッピングについては意識していません。このため,UTF-8のエンコードルールに従った文字を使用できます。ただし,文字コード変換では文字セットとエンコードルールの関係を意識する必要があるため,HiRDBクライアントの文字コードがSJISでHiRDBサーバの文字コードがUTF-8の場合,クライアント環境定義のPDCLTCNVMODEを指定するときは,JISX0221,又はMS-Unicodeのどちらを使用しているか意識する必要があります。PDCLTCNVMODEについては,マニュアル「HiRDB UAP開発ガイド」を参照してください。

注※5

4バイト以上の文字を使用する場合は,システム定義のpd_substr_lengthオペランド及びクライアント環境定義PDSUBSTRLENの設定が必要な場合があります。pd_substr_lengthオペランドについては,マニュアル「HiRDB システム定義」を参照してください。PDSUBSTRLENについては,マニュアル「HiRDB UAP開発ガイド」を参照してください。

なお,ISO/IEC 10646では,文字が割り当てられているのは1文字1〜4バイト(utf-8_ivsの場合は,1〜4,7及び8バイト)の範囲です。5及び6バイト(utf-8_ivsの場合は,5,6,9及び10バイト)の範囲は将来の規格のために予約されており,文字が割り当てられていません。したがって,文字が割り当てられていない1文字5,6バイト(utf-8_ivsの場合は,5,6,9及び10バイト)の範囲を使用した場合は,将来発生するかもしれない問題について保証できません。

注※6

utf-8とutf-8_ivsでは,字形の種類を表すコード(VS(Variation Selector):字形選択子)の扱いが異なります。utf-8の場合,基底文字とVSはそれぞれ別の一つの文字として扱い,utf-8_ivsの場合,基底文字とVSを合わせて1文字として扱います。そのため,utf-8の場合は1文字の長さが1〜6バイトになりますが,utf-8_ivsの場合は1文字の長さが1〜10バイトになります。