GRAPHIC ストリング

GRAPHIC ストリング は、 2 バイト文字データを表す一連のコード単位です。

ストリングの長さは、その一連のコード単位の数です。 長さがゼロの場合、 その値は空ストリング と呼ばれます。 この値を NULL 値と混同しないようにしてください。

GRAPHIC ストリングは、1 バイトのコード・ページで定義されたデータベースではサポートされません。

GRAPHIC ストリングの値に 2 バイト文字コード・ポイント以外の値が入っていないかどうかを調べる妥当性検査は行われません。 (この規則の例外は、 WCHARTYPE CONVERT オプションを指定してプリコンパイルされたアプリケーションです。 このオプションを指定した場合、妥当性検査が行われます。) データベース・マネージャーは、 2 バイト文字データが GRAPHIC データ・フィールドに入っていることを想定しています。 データベース・マネージャーは、GRAPHIC ストリング値の長さが偶数バイトであることを検査します

C の NULL 終了 GRAPHIC ストリングは、 プリコンパイル・オプションの標準レベルに応じて、 異なった方式で処理されます。 このデータ・タイプは表内に作成することはできません。 データをデータベースに挿入するときやデータベースから検索するときにのみ使用可能です。

固定長 GRAPHIC ストリング (GRAPHIC)

固定長 GRAPHIC ストリングの列の値は、すべて同じ長さです。 この長さは、その列の長さ属性によって決定されます。 長さ属性は、1 から 127 (両端を含む) でなければなりません。 ただし、ストリング単位が CODEUNITS32 の場合 (1 から 63 の範囲を含む) を除きます。

可変長 GRAPHIC ストリング

可変長 GRAPHIC ストリングには、以下の 2 つのタイプがあります。
  • VARGRAPHIC 値は、最長 16 336 個の 2 バイトのコード単位にすることができます。 ストリング単位が CODEUNITS32の場合、長さは最大 8 168 ストリング単位にすることができます。
  • DBCLOB (2 バイト文字ラージ・オブジェクト) 値は、最長 1 073 741 823 個の 2 バイトのコード単位にすることができます。 ストリング単位が CODEUNITS32の場合、長さは最大 536 870 911 ストリング単位にすることができます。 DBCLOB は、(単一文字セットで記述された文書のような) 大規模な DBCS 文字ベースのデータの保管に使用されます。したがって、 DBCLOB にはそれに関連する DBCS コード・ページがあります。

結果が DBCLOB データ・タイプになる式には特別な制限が適用されます。 これらの制限は、 可変長文字ストリングに指定されている制限と同じです。

注: LONG VARGRAPHIC データ・タイプは引き続きサポートされますが、非推奨であり、将来のリリースで除去される可能性があります。

グラフィック・ストリングのストリング単位の指定

グラフィック・ストリング・データ・タイプの長さの単位は、2 バイト、CODEUNITS16 または CODEUNITS32 です。 長さの単位で、データ長を決定する際に使用されるカウント方式が定義されます。
2 バイト
長さ属性の単位が 2 バイトであることを示します。 この長さの単位は、非 Unicode データベース内のすべてのグラフィック・ストリング・データ・タイプに適用されます。 Unicode データベースでは、CODEUNITS16 が使用されます。
CODEUNITS16
長さ属性の単位が、2 バイトのカウントと同じ Unicode UTF-16 コード単位であることを示します。 この長さの単位は、データ・タイプの基礎となるコード・ページには影響しません。 CODEUNITS16 のストリング単位は、Unicode データベースでグラフィック・ストリング・データ・タイプでのみ使用できます。 CODEUNITS16 は、環境設定に基づいて、明示的に指定または決定することができます。
CODEUNITS32
長さ属性の単位が、文字単位でカウントを概算する Unicode UTF-32 コード単位であることを示します。 この長さの単位は、データ・タイプの基礎となるコード・ページには影響しません。 データ値の実際の長さは、データが UTF-32 に変換された場合と同じように、UTF-32 コード単位をカウントして決定されます。 CODEUNITS32 のストリング単位は Unicode データベースでのみ使用できます。 CODEUNITS32 は、環境設定に基づいて、明示的に指定または決定することができます。

非 Unicode データベースでは、ストリング単位は常に 2 バイトであり、変更することはできません。 Unicode データベースでは、ストリング単位をグラフィック・ストリング・データ・タイプの長さ属性とともに明示的に指定することも、環境設定に基づいてデフォルトに設定することもできます。

ストリング単位の環境設定は、NLS_STRING_UNITS グローバル変数の値、または string_units データベース構成パラメーターに基づきます。 データベース構成パラメーターを SYSTEM または CODEUNITS32 に設定することができます。 グローバル変数も SYSTEM または CODEUNITS32 に設定できますが、NULL に設定することもできます。 NULL 値は、SQL セッションで string_units データベース構成パラメーター設定を使用する必要があることを示します。 環境設定の値が SYSTEM である場合、Unicode データベースではデフォルトのストリング単位設定として CODEUNITS16 が使用され、非 Unicode データベースでは 2 バイトが使用されます。