GRAPHIC ストリング
GRAPHIC ストリング は、 2 バイト文字データを表す一連のコード単位です。
ストリングの長さは、その一連のコード単位の数です。長さがゼロの場合、 その値は空ストリング と呼ばれます。この値を NULL 値と混同しないようにしてください。
GRAPHIC ストリングは、1 バイトのコード・ページで定義されたデータベースではサポートされません。
GRAPHIC ストリングの値に 2 バイト文字コード・ポイント以外の値が入っていないかどうかを調べる妥当性検査は行われません。 (この規則の例外は、 WCHARTYPE CONVERT オプションを指定してプリコンパイルされたアプリケーションです。 このオプションを指定した場合、妥当性検査が行われます。) データベース・マネージャーは、 2 バイト文字データが GRAPHIC データ・フィールドに入っていることを想定しています。 データベース・マネージャーは、GRAPHIC ストリング値の長さが偶数バイトであることを検査します。
C の NULL 終了 GRAPHIC ストリングは、 プリコンパイル・オプションの標準レベルに応じて、 異なった方式で処理されます。 このデータ・タイプは表内に作成することはできません。 データをデータベースに挿入するときやデータベースから検索するときにのみ使用可能です。
固定長 GRAPHIC ストリング (GRAPHIC)
固定長 GRAPHIC ストリングの列の値は、すべて同じ長さです。 この長さは、その列の長さ属性によって決定されます。 ストリング単位が 1 以上 63 以下の範囲の CODEUNITS32 である場合を除き、長さ属性は 1 以上 127 以下でなければなりません。
可変長 GRAPHIC ストリング
- VARGRAPHIC 値は、最長 16 336 個の 2 バイトのコード単位にすることができます。ストリング単位が CODEUNITS32 である場合は、長さを最大 8 168 ストリング単位にすることができます。
- DBCLOB (2 バイト文字ラージ・オブジェクト) 値は、最長 1 073 741 823 個の 2 バイトのコード単位にすることができます。ストリング単位が CODEUNITS32 である場合は、長さを最大 536 870 911 ストリング単位にすることができます。 DBCLOB は、(単一文字セットで記述された文書のような) 大規模な DBCS 文字ベースのデータの保管に使用されます。したがって、 DBCLOB にはそれに関連する DBCS コード・ページがあります。
結果が DBCLOB データ・タイプになる式には特別な制限が適用されます。この制限は、可変長文字ストリングで指定されている制限と同じです。
グラフィック・ストリングのストリング単位の指定
- 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 バイトが使用されます。