ヘッダーをスキップ
Oracle Rdb SQLリファレンス・マニュアル
リリース7.2
E06178-01
  目次
目次
索引
索引

戻る
戻る
 
次へ
次へ
 

1.6 キーワードおよび行終端文字

構文図では、キーワードは大文字で表示されます。対話型SQLでは、キーワードの短縮形が構文的に認められている選択肢を一意に示している場合、キーワードを短縮できます。ホスト言語プログラム(プリコンパイルされたモジュール言語または動的SQL)で使用されるSQL文では、キーワードを短縮できません。

キーワードには、次の2つのタイプがあります。

1.6.1 文の終了記号およびコメント文字

SQL文は、SQL文を発行する環境によってその終了方法が異なります。

文の終了記号と同様に、SQLによって指示コメントとして認識される表記法は環境によって異なります。

1.7 マルチベンダー統合アーキテクチャのサポート

Oracle Rdbでは、マルチベンダー統合アーキテクチャ(MIA)がサポートされています。このサポートには、次の項目が含まれています。

また、SQLでは、SQLプリコンパイルされたCプログラム、COBOLプログラムおよびFORTRANプログラム内の新しい文字データ型変数もサポートされています。データ型の詳細は、第4.4.3項第4.4.4項および第4.4.5項を参照してください。

SQLでは、SQLモジュール言語内の仮パラメータに特定のキャラクタ・セットまたは各国語キャラクタ・セットを指定することもできます。詳細は、第3.2節および「DECLARE MODULE文」を参照してください。

MCS以外のキャラクタ・セットを使用する場合は、キャラクタ・セットが次の要素に及ぼす影響に注意してください。

インストール時に、SQLによって様々な言語の多数のサンプル・プログラムがインストールされます。これらのプログラムは、システムのサンプル・ディレクトリにインストールされます。各プログラムについての簡単な説明は、サンプル・ディレクトリ内にあるファイルabout_sql_examples.txtに記載されています。これらのプログラムの1つであるMIA_CHAR_SETでは、MIAに準拠するために必要な別のキャラクタ・セットを使用するデータベースが作成されます。


第2章
言語要素および構文要素

SQLでは、多くの文に共通の基本構文要素および言語要素が使用されます。これらの要素は、詳細な説明なしに構文図で言及されます。この章では、次の要素について説明します。

SQL文を作成して特定のタスクを実行する方法の詳細は、『Oracle Rdb7 Introduction to SQL』および『Oracle Rdb7 Guide to SQL Programming』を参照してください。

2.1 サポートされているキャラクタ・セット

Oracle Rdbでは複数のキャラクタ・セットがサポートされており、1つのデータベースで複数のキャラクタ・セットを使用できます。

表2-1は、サポートされているキャラクタ・セット、SQL文でキャラクタ・セットを指定する場合の名前およびキャラクタ・セットの説明を示しています。

表2-1 サポートされているキャラクタ・セット
キャラクタ・セット1 説明
AL24UTFFSS Unicode標準1.1に基づくUTF-8エンコーディング
ASCII 7ビットASCII文字
ARABIC ISO9036標準で規定されているアラビア文字
BIG5 台湾の情報産業で使用されているキャラクタ・セット
DEC_HANYU 台湾で使用されている標準CNS11643:1986規格の繁体字中国語文字(繁体)、DTSCCおよびASCIIで規定されている補助文字
DEC_HANZI 標準GB2312:1980およびASCII文字で規定されている中国語(Bopomofo)文字
DEC_KANJI JIS X0208:1990標準で規定されている日本語文字、JIS X0201:1976で規定されている半角カタカナ文字(SS2(8E hex)の接頭辞が付く)、ユーザー定義文字およびASCII文字
DEC_KOREAN 標準KS C5601:1987およびASCII文字で規定されている韓国語文字
DEC_MCS 国際英数字(発音区別符号を含む)
DEC_SICGCC 台湾で使用されている標準CNS11643:1986およびASCII規格の繁体字中国語文字(繁体)
DEVANAGARI ISCII:1988標準で規定されているデーバナーガリー文字
DOS_LATIN1 DOS Latin 1コード
DOS_LATINUS DOS Latin USコード
GB18030 中華人民共和国(PRC)で使用されているGB18030-2000標準規格の簡体字中国語文字
HANYU 台湾で使用されている標準CNS11643:1986規格の繁体字中国語文字(繁体)
HANZI 標準GB2312:1980で規定されている中国語(Bopomofo)文字
HEX テキスト・データと16進データの相互変換
ISOLATIN1 ISO/IEC 8859-1:1987標準規格の拡張西ヨーロッパ言語文字
ISOLATIN9 ユーロ文字のコードポイントを含むISO/IEC 8859-15標準規格の拡張西ヨーロッパ言語文字
ISOLATINARABIC ISO/IEC 8859-6:1987標準規格のアラビア文字
ISOLATINCYRILLIC ISO/IEC 8859-5:1987標準規格のキリル文字
ISOLATINGREEK ISO/IEC 8859-7:1987標準規格のギリシャ文字
ISOLATINHEBREW ISO/IEC 8859-8:1987標準規格のヘブライ文字
KANJI JIS X0208:1990標準規格の日本語文字およびユーザー定義文字
KATAKANA 標準JIS X0201:1976で規定されている日本語音標文字(半角カタカナ)
KOREAN 標準KS C5601:1987で規定されている韓国語文字
SHIFT_JIS Shift_JIS固有のコード体系を使用し、JIS X0208:1990標準で規定されている日本語文字、JIS X0201:1976で規定されている半角カタカナ文字およびASCII文字
TACTIS TACTIS(タイAPIコンソーシアム/タイ業界標準)で、ISO 646-1983標準とTIS 620-2533標準の組合せに基づくタイ語文字
UNICODE Unicode標準およびISO/IEC 10646変換形式UTF-16で規定されているUnicode文字
UNSPECIFIED 第2.1.10項を参照
UTF8 Unicode標準およびISO/IEC 10646 UTFエンコーディング形式で規定されているUnicode文字
WIN_ARABIC MS Windowsコード・ページ1256
8ビット・ラテン語/アラビア語
WIN_CYRILLIC MS Windowsコード・ページ1251
8ビット・ラテン語/キリル語
WIN_GREEK MS Windowsコード・ページ1253
8ビット・ラテン語/ギリシャ語
WIN_HEBREW MS Windowsコード・ページ1255
8ビット・ラテン語/ヘブライ語
WIN_LATIN1 MS Windowsコード・ページ1252
8ビット西ヨーロッパ言語


1各国間でのアプリケーションの移植性を高めるために、キャラクタ・セット名のかわりに論理名を使用できます。詳細は、第2.1.11項を参照してください。

サポートされているキャラクタ・セットは、識別子キャラクタ・セットとしての指定を除き、指定されている場合はいつでも使用できます。識別子キャラクタ・セットの詳細は、第2.1.5項を参照してください。

各キャラクタ・セットは、文字をコーディングする方法が異なります。つまり、すべて1オクテットでコーディングされるキャラクタ・セットの文字もあれば、複数のオクテットでコーディングされるキャラクタ・セットの文字もあります。オクテットとは、8ビットの集まりです。)

文字をコーディングする方法は、次のとおりです。

表2-2は、サポートされている各キャラクタ・セットが単一の文字をコーディングする場合に使用するオクテット数を示しています。

表2-2 キャラクタ・セットの文字で使用されるオクテット数
キャラクタ・セット 各文字に使用されるオクテット数
単一のオクテット・キャラクタ・セット
ASCII 1オクテット
DEC_MCS 1オクテット
DOS_LATIN1 1オクテット
DOS_LATINUS 1オクテット
ISOLATINARABIC 1オクテット
ISOLATINHEBREW 1オクテット
ISOLATINCYRILLIC 1オクテット
ISOLATINGREEK 1オクテット
ISOLATIN1 1オクテット
ISOLATIN9 1オクテット
DEVANAGARI 1オクテット
KATAKANA 1オクテット
TACTIS 1オクテット
UNSPECIFIED 1オクテット
WIN_* 1オクテット
固定数の複数のオクテット・キャラクタ・セット
BIG5 2オクテット
HEX 2オクテット
HANYU 2オクテット
HANZI 2オクテット
KANJI 2オクテット
KOREAN 2オクテット
UNICODE 2オクテット
混合数の複数のオクテット・キャラクタ・セット
AL24UTFFSS 1〜3オクテット(UTF-8標準で指定)
DEC_KOREAN ASCII文字は1オクテット、韓国語文字は2オクテット
DEC_SICGCC ASCII文字は1オクテット、繁体文字は2オクテット
DEC_HANYU ASCII文字は1オクテット、繁体文字は2オクテット、補助文字は4オクテット
DEC_HANZI ASCII文字は1オクテット、簡体文字は2オクテット
DEC_KANJI ASCII文字は1オクテット、漢字は2オクテット、半角カタカナは2オクテット(SS2(8E hex)の接頭辞と単一のオクテットJIS X0201文字)
SHIFT_JIS ASCII文字は1オクテット、半角カタカナは1オクテット、SHIFT_JISエンコーディングを使用する漢字は2オクテット
UTF8 1〜3オクテット(UTF-8標準で指定)

複数のオクテット文字は、編集文字列、ファイル名、リポジトリ・パス名またはデータベース名に使用できません。

2.1.1 自動変換

Oracle Rdbでは、テキスト列へのリテラルの代入や2つの文字列変数の比較などのテキスト・データの操作中に、操作が確実に実行されるよう、キャラクタ・セットの互換性チェックが実行されます。

ほとんどの場合、2つのテキスト・オブジェクトは操作を実行する前に同一キャラクタ・セットにしておく必要があるため、自動変換が有効になっていない場合、このチェックはかなり限定的なものになります。

自動変換機能を使用すると、キャラクタ・セットのチェックを限定的にするかどうか、Rdbでキャラクタ・セットの変換を行うかどうかを選択できます。この機能は、代入や比較の前に実行するTRANSLATEファンクションに類似しています。

自動変換を有効にすると、以前は明示的に実行するために追加の変換手順が必要だった操作を簡単に実行できます。

  1. 共通の文字サブセット(例: DEC_MCSとDEC_KANJIではASCIIが共通)を持つ異なるキャラクタ・セットでエンコードされたデータを含む列間で比較を実行します。

  2. 同じSQLコードを使用して、クライアントの環境とは関係なく、データベースのデータにアクセスします。たとえば、DEC_MCS列にアクセスする日本語PCユーザーは、TRANSLATE文をSQLコマンドに追加して、画面に表示する前にDEC_MCSをSHIFT_JISに変換する必要があります。自動変換を有効に設定し、表示キャラクタ・セットを指定すると、この操作は不要になります。

  3. 明示的な変換を行わずに、ネイティブ・インタフェースからデータを入力します。たとえば、日本語PCでSHIFT_JISを使用するユーザーは、明示的な変換文を使用せずに、データベースのデータにアクセスしてDE_KANJI列にデータを挿入できます。

自動変換を有効にする方法は、次のとおりです。

  1. SET AUTOMATIC TRANSLATION文を使用します。

  2. SQL$AUTOMATIC_TRANSLATION論理名を定義します。

SQL$AUTOMATIC_TRANSLATION

論理名SQL$AUTOMATIC_TRANSLATIONを使用すると、SQLユーザーは、デフォルトで自動変換が有効になるよう指定できます。

論理名SQL$AUTOMATIC_TRANSLATIONは、クライアントSQLプロセスにアクセス可能な論理名の表に配置できます。

SQLを起動する前に論理名が文字列TRUEまたは値Tのいずれかに設定されている場合、自動変換はデフォルトで有効になっています。その他の値の場合は、SQL内で自動変換が無効になります。