SQL 解説書

可変長文字ストリングの使用制限

最大長が 255 バイトを超える可変長ストリングのデータ・タイプが結果となる式には、 特別な制限が適用されます。このような式は以下の場所には使用できません。

上記の制限に加えて、LONG VARCHAR、CLOB のデータ・タイプ、 または構造タイプ列が結果となる式は、以下の場所には使用できません。

VARCHAR を引き数として取る SYSFUN スキーマの関数は、 4 000 バイトよりも長い VARCHAR を引き数として受け入れません。 しかし、そのような関数の多くには、 CLOB(1M) を受け入れるための代替シグニチャーが用意されています。 そのような代替シグニチャーが用意されている関数の場合は、 ユーザーが 4 000 バイトよりも長い VARCHAR ストリングを明示的に CLOB へキャストし、 結果が戻されたら希望する長さの VARCHAR へ再びキャストしなおすという手順を取ります。

NULL 終了文字ストリング

C の NULL 終了文字ストリングは、プリコンパイル・オプションの標準レベルに応じて、 異なった方式で処理されます。 NULL 終了文字ストリングの処理については、 アプリケーション開発の手引き の C 言語に関する部分を参照してください。

文字サブタイプ

それぞれの文字ストリングは、さらに次のいずれかとして定義されます。

ビット・データ
コード・ページに対応していないデータ。

SBCS データ
それぞれの文字が 1 バイトで表現されるデータ。

混合データ
1 バイト文字セット (SBCS) とマルチバイト文字セット (MBCS) の文字が混合して含まれるデータ。

SBCS と MBCS についての考慮事項

SBCS データは、SBCS データベースでのみサポートされます。 混合データは、DBCS データベースでのみサポートされます。

漢字ストリング

漢字ストリング は、 2 バイト文字データを表す一連のバイトです。 ストリングの長さは、その一連のバイトの 2 バイト文字の数です。 長さがゼロの場合、その値は空ストリングと呼ばれます。 この値をヌル値と混同しないようにしてください。

漢字ストリングについて、 それらの値に 2 バイト文字コード・ポイント以外の値が含まれていないかどうかを調べる妥当性検査は行われません。 15 データベース・マネージャーは、 2 バイト文字データが漢字データ・フィールドに含まれていることを想定しています。 データベース・マネージャーは、漢字ストリング値の長さが偶数バイトであることを検査します。

漢字ストリング・データ・タイプは、固定長でも可変長でもかまいません。 固定長と可変長の意味は、文字ストリング・データ・タイプでの定義と同様です。

固定長漢字ストリング

固定長漢字ストリングの列の値は、すべて同じ長さです。 この長さは、その列の長さ属性によって決定されます。 長さ属性は、1 以上 127 以下でなければなりません。

可変長漢字ストリング

可変長漢字ストリングには、VARGRAPHIC、LONG VARGRAPHIC、および DBCLOB の 3 つのタイプがあります。

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

NULL 終了漢字ストリング

C の NULL 終了漢字ストリングは、 プリコンパイル・オプションの標準レベルに応じて、 異なった方式で処理されます。 NULL 終了漢字ストリングの処理については、 アプリケーション開発の手引き の C 言語に関する部分を参照してください。

このデータ・タイプは表内に作成することはできません。 データをデータベースに挿入するときやデータベースから検索するときにのみ使用可能です。

2 進ストリング

2 進ストリング は、一連のバイトです。 通常、テキスト・データを含む文字ストリングとは異なり、 2 進ストリングは、ピクチャーなどの従来はあまりなかったデータの保持に使用されます。 ビット・データ・サブタイプの文字ストリングも似たような目的で使用されることがありますが、 この 2 つのデータ・タイプは互換ではありません。 BLOB スカラー関数を使用すると、 ビット・ストリングの文字を 2 進ストリングにキャスト (タイプ変換) することができます。 2 進ストリングの長さは、バイトの数です。 コード・ページは対応していません。 2 進ストリングにも文字ストリングと同じ制限があります (詳細については、 可変長文字ストリングの使用制限を参照)。

数値

すべての数値には、符号と精度があります。 精度 とは、符号を除いたビット数または桁数です。 数値の値がゼロのときは、符号は正であるとみなされます。

短精度整数 (SMALLINT)

短精度整数 は、精度が 5 桁の 2 バイト整数です。 短精度整数の範囲は -32 768 〜 32 767 です。

長精度整数 (INTEGER)

長精度整数 は、精度が 10 桁の 4 バイトの整数です。 長精度整数の範囲は -2 147 483 648 〜 +2 147 483 647 です。

大整数 (BIGINT)

大整数 は、精度が 19 桁の 8 バイトの整数です。 大整数の範囲は、-9 223 372 036 854 775 808 〜 +9 223 372 036 854 775 807 です。

単精度浮動小数点 (REAL)

単精度浮動小数点 数は、実数の 32 ビット近似値です。

この数はゼロ、または -3.402E+38 〜 -1.175E-37、 もしくは 1.175E-37 〜 3.402E+38 の範囲にすることができます。

倍精度浮動小数点 (DOUBLE または FLOAT)

倍精度浮動小数点 数は、実数の 64 ビットの近似値です。

値は、ゼロ、または -1.79769E+308 〜 -2.225E-307、 または 2.225E-307 〜 1.79769E+308 の範囲です。

10 進数 (DECIMAL または NUMERIC)

10 進数 値は、 暗黙の小数点を伴うパック 10 進数です。 小数点の位置は、その数値の精度と位取りによって決定されます。

数値の小数部分の桁数である位取りが、 負になったり精度数よりも大きくなったりすることはありません。 最大精度は 31 桁です。 パック 10 進数の表現については、パック 10 進数を参照してください。

10 進数の列の値は、すべて同じ精度と位取りの値です。 10 進数の変数または 10 進数の列の数値の範囲は、 -n 〜 +n です (絶対値 n は、 適切な精度および 10 進数で表現できる最も大きな数値)。 最大の範囲は -10**31+1 〜 10**31-1 です。


脚注:

15
この規則の例外は、 WCHARTYPE CONVERT オプションを指定してプリコンパイルされたアプリケーションです。 このオプションを指定した場合、妥当性検査が行われます。 詳細については、 アプリケーション開発の手引き の "C および C++ のプログラミング"に関する項を参照してください。


[ ページのトップ | 前ページ | 次ページ | 目次 | 索引 ]