SQL の制約
以下の表では、Db2 for i データベースマネージャによって課される特定の SQL とデータベースの制限について説明します。
注:
- システム・ストレージの制限により、ここで指定される制限が無効になる場合があります。 例えば、 最大行サイズを参照してください。
- ストレージ の制限とは、その制限が使用可能なストレージの量に依存していることを意味します。
- ステートメント の制限とは、その制限がステートメントの最大長制限に依存していることを意味します。
| 制限される ID | Db2 for i 制限 |
|---|---|
| 権限名の最大長 | 101 |
| 相関名の最大長 | 128 |
| カーソル名の最大長 | 128 |
| 記述子名の最大長 | 128 |
| 外部プログラム名の最大長 (ストリング形式) | 2792 |
| 外部プログラム名の最大長 (非修飾形式) | 10 |
| 最も長いホスト ID3 | 128 |
| パッケージ・バージョン ID の最大長 | 64 |
| パーティション名の最大長 | 10 |
| セーブポイント名の最大長 | 128 |
| スキーマ名の最大長 | 128 |
| サーバー名の最大長 | 18 |
| ステートメント名の最大長 | 128 |
| SQL 条件名の最大長 | 128 |
| SQL ラベルの最大長 | 128 |
| 非修飾の別名の最大長 | 128 |
| 非修飾の列名の最大長 | 128 |
| 非修飾の制約名の最大長 | 128 |
| 非修飾の特殊タイプ名の最大長 | 128 |
| 非修飾の関数名の最大長 | 128 |
| 非修飾のグローバル変数名の最大長 | 128 |
| 非修飾の索引名の最大長 | 128 |
| 非修飾のマスク名の最大長 | 128 |
| 非修飾のノード・グループ名の最大長 | 10 |
| 非修飾のパッケージ名の最大長 | 10 |
| 非修飾の許可名の最大長 | 128 |
| 非修飾のプロシージャー名の最大長 | 128 |
| 非修飾のシーケンス名の最大長 | 128 |
| 非修飾の特定名の最大長 | 128 |
| 非修飾の SQL パラメーター名の最大長 | 128 |
| 非修飾の SQL 変数名の最大長 | 128 |
| 非修飾のシステム列名の最大長 | 10 |
| 非修飾のシステム・オブジェクト名の最大長 | 10 |
| 非修飾のシステム・スキーマ名の最大長 | 10 |
| 非修飾の表名およびビュー名の最大長 | 128 |
| 非修飾のトリガー名の最大長 | 128 |
| 非修飾の XSR オブジェクト名の最大長 | 128 |
| XMLELEMENT、XMLFOREST、XMLATTRIBUTES、XMLNAMESPACES、 XMLPI で指定する XML のエレメント名、属性名、接頭部名、処理命令名の最大長 | 128 |
| XMLTABLE で指定された最も長い XML パス名 | 128 |
| 解析する XML 文書の XML のエレメント名、属性名、接頭部名、処理命令名の最大長 | 1000 |
| XML スキーマの Uniform Resource Identifier (URI) の最大長 | 1000 |
| JSON パス名の最大長 | 128 |
| 数値の制約 | Db2 for i 制限 |
|---|---|
| SMALLINT (短整数) の最小値 | -32 768 |
| SMALLINT (短整数) の最大値 | +32 767 |
| INTEGER (整数) の最小値 | -2 147 483 648 |
| INTEGER (整数) の最大値 | +2 147 483 647 |
| BIGINT (長整数) の最小値 | -9 223 372 036 854 775 808 |
| BIGINT (長整数) の最大値 | +9 223 372 036 854 775 807 |
| 10 進数の精度の最大値 | 63 |
| REAL 値の最大指数 (Emax) | 38 |
| 最小 REAL 値4 | -3.4x1038 |
| 最大 REAL 値4 | +3.4x1038 |
| REAL 値の最小指数 (Emin) | -38 |
| REAL の正の最小値4 | +1.18x10-38 |
| 最大の負の REAL 値4 | -1.18x10-38 |
| DOUBLE 値の最大指数 (Emax) | 308 |
| 最小 DOUBLE 値4 | -1.79x10308 |
| 最大 DOUBLE 値4 | +1.79x10308 |
| DOUBLE 値の最小指数 (Emin) | -308 |
| 正の最小 DOUBLE 値4 | +2.23x10-308 |
| 負の DOUBLE の最大値4 | -2.23x10-308 |
| DECFLOAT(16) 値の最大指数 (Emax) | 384 |
| 最小 DECFLOAT (16) 値5 | -9.999999999999999x10384 |
| 最大 DECFLOAT (16) 値5 | 9.999999999999999x10384 |
| DECFLOAT(16) 値の最小指数 (Emin) | -383 |
| 正の DECFLOAT (16) の最小値5 | 1x10-383 |
| 負の最大 DECFLOAT (16) 値5 | -1x10-383 |
| DECFLOAT(34) 値の最大指数 (Emax) | 6144 |
| DECFLOAT (34) の最小値5 | -9.999999999999999999999999999999999x106144 |
| DECFLOAT (34) の最大値5 | 9.999999999999999999999999999999999x106144 |
| DECFLOAT(34) 値の最小指数 (Emin) | -6143 |
| 正の DECFLOAT (34) の最小値5 | 1x10-6143 |
| 負の最大 DECFLOAT (34) 値5 | -1x10-6143 |
| ストリングの制約 | Db2 for i 制限 |
|---|---|
| CHAR (文字) の最大長 (バイト数) | 327656 |
| VARCHAR (可変長文字) の最大長 (バイト数) | 327396 |
| CLOB の最大長 (バイト数) | 2 147 483 647 |
| GRAPHIC の最大長 (2 バイト文字数) | 163826 |
| VARGRAPHIC の最大長 (2 バイト文字数) | 163696 |
| DBCLOB の最大長 (2 バイト文字数) | 1 073 741 823 |
| BINARY の最大長 (バイト数) | 327656 |
| VARBINARY の最大長 (バイト数) | 327396 |
| BLOB の最大長 (バイト数) | 2 147 483 647 |
| 直列化された XML の最大長 (バイト数) | 2 147 483 647 |
| 文字定数の最大長 | 32740 |
| グラフィック定数の最大長 | 16370 |
| バイナリー定数の最大長 | 32740 |
| 連結した文字ストリングの最大長 | 2 147 483 647 |
| 連結したグラフィック・ストリングの最大長 | 1 073 741 823 |
| 連結したバイナリー・ストリングの最大長 | 2 147 483 647 |
| 16 進定数桁の最大数 | 32 762 |
| カタログ・コメントの最大長 | 20007 |
| 列ラベルの最大長 (バイト数) | 60 |
| SQL ルーチン・ラベルの最大長 | 128 |
| 表、パッケージ、または別名のラベルの最大長 | 50 |
| C の NUL 終了ストリングの最大長 | 327396 |
| C の NUL 終了グラフィックの最大長 | 163696 |
| XML 制限 | Db2 for i 制限 |
|---|---|
| XML スキーマ文書の最大長 (バイト数) | 2 147 483 647 |
| 解析する XML エンティティーの最大長 | 1 ギガバイト |
| 内部 XML ツリーの最大深さ | 128 |
| JSON の制限 | Db2 for i 制限 |
|---|---|
| JSON 文書の最大長 (バイト数) | 2 147 483 647 |
| 日付/時刻の制約 | Db2 for i 制限 |
|---|---|
| DATE (日付) の最小値 | 0001-01-01 |
| DATE (日付) の最大値 | 9999-12-31 |
| TIME (時刻) の最小値 | 00:00:00 |
| TIME (時刻) の最大値 | 24:00:00 |
| TIMESTAMP (タイム・スタンプ) の最小値 | 0001-01-01-00.00.00.000000000000 |
| TIMESTAMP (タイム・スタンプ) の最大値 | 9999-12-31-24.00.00.000000000000 |
| タイム・スタンプの精度の最小値 | 0 |
| タイム・スタンプの精度の最大値 | 12 |
| データ・リンクの制約 | Db2 for i 制限 |
|---|---|
| DATALINK の最大長 | 32718 |
| DATALINK コメントの最大長 | 254 |
| データベース・マネージャーの制約 | Db2 for i 制限 |
|---|---|
| リレーショナル・データベース | |
| スキーマの最大数 | ストレージ |
| リレーショナル・データベース内の表の最大数 | ストレージ |
| ノード・グループ内のノードの最大数 | 32 |
| スキーマ | |
| スキーマ内のオブジェクトの最大数 | 約 1 000 000 |
| 表とビュー | |
| 表の列の最大数 | 8000 |
| ビュー内の列の最大数 | 8000 |
| LOB のない行の最大長 (すべてのオーバーヘッドを含む) | 32766 |
| LOB がある行の最大長 (すべてのオーバーヘッドを含む) | 3 758 096 383 |
| 非パーティション表内の行の最大数 | 4 294 967 288 |
| データ・パーティション内の行の最大数 | 4 294 967 288 |
| 非パーティション表の最大サイズ | 1.7 テラバイト |
| データ・パーティションの最大サイズ | 1.7 テラバイト |
| 1 つのパーティション表内のデータ・パーティションの最大数 | 256 |
| 表パーティション列の最大数 | 120 |
| ビューまたはマテリアライズ照会表で参照する表の最大数 | 10008 |
| 1 つの表またはビューの従属ビュー、マテリアライズ照会表、および索引の最大数 | ストレージ |
| 制約 | |
| テーブルにおける制約の最大数 | 5000 |
| UNIQUE 制約における列の最大数 | 120 |
| UNIQUE 制約における列の結合後の最大長 (バイト数) | 327676 |
| 外部キーで参照される列の最大数 | 120 |
| 外部キーで参照される列の結合後の最大長 (バイト単位) | 327676 |
| CHECK 制約の最大長 (バイト数) | ステートメント |
| トリガー | |
| テーブルにおけるトリガーの最大数 | 300 |
| トリガーのカスケード実行時の最大深さ | 200 |
| 索引 | |
| 表の索引の最大数 | 約 15000 |
| 索引キーにおける列の最大数 | 120 |
| 索引キーの最大長 | 327676 |
| 非パーティション化索引の最大サイズ | 16 terabytes![]() |
| パーティション化索引のパーティションの最大サイズ | 16 terabytes![]() |
| SQL | |
| SQL ステートメントの最大長 (バイト数) | 2 097 152 |
| 1 つの SQL ステートメントで参照する表の最大数 | 10008 |
| SQL ステートメント内の変数および定数の最大数 | 327009 |
| 選択リスト内のエレメントの最大数 | 約 800010 |
| WHERE または HAVING 節の述部の最大数 | ステートメント |
| 1 つの GROUP BY 文節の列の最大数 | GROUP BY の合計長 |
| 1 つの GROUP BY 文節の列の最大合計長 | 3.5 ギガバイト11 |
| CUBE グループのエレメントの最大数 | 10 |
| 1 つの ORDER BY 文節の列の最大数 | ORDER BY の合計長 |
| 1 つの ORDER BY 文節の列の最大合計長 | 3.5 ギガバイト 11 |
| 階層照会の再帰レベルの最大数 | 250 |
| 副照会で許される最高レベル | 256 |
| 挿入操作における行の値の最大数 | 8000 |
| 単一の更新操作中の SET 節の最大数 | 8000 |
| ルーチン | |
| プロシージャーにおけるパラメーターの最大数 | 200012 |
| 関数におけるパラメーターの最大数 | 200012 |
| 表関数の戻り列の最大数 | 8000 |
| ルーチンのネスト・レベルの最大数 | ストレージ |
| タイプ | |
| 配列タイプの最大カーディナリティー。 | 2 147 483 647 |
| アプリケーション | |
| プリコンパイル済みプログラム中のホスト変数宣言の最大数 | ストレージ13 |
| ホスト変数値の最大長 (バイト数) | 2 147 483 647 |
| MQ メッセージ CLOB 値の最大長 (バイト数) | 2M |
| MQ メッセージ可変長値の最大長 (バイト数) | 32000 |
| プログラムで宣言できるカーソルの最大数 | ストレージ |
| 一度にオープンできるカーソルの最大数 | ストレージ 14 |
| ロックされた行の作業単位あたりの最大数 | 500 000 000 |
| 作業単位あたりの DDL ステートメントの最大数 | 131 036 |
| トランザクション内のロケーターの最大数 | 16 000 000 15 |
| SQLDA の最大サイズ (バイト単位) | 16 777 215 |
| 準備済みステートメントの最大数 | ストレージ |
| 一度にアクティブにできるセーブポイントの最大数 | ストレージ |
| 1 つのプロセス内で同時に割り振りできる CLI ハンドルの最大数 | 160 000 16 |
| パッケージの最大サイズ | 1008 メガバイト17 |
| パスの最大長 | 8843 |
| パス内のスキーマの最大数 | 268 |
| パスワードの最大長 | 127 |
| ヒントの最大長 | 32 |
| プログラム、サービス・プログラムまたはモジュールに関連付けられるスペースの最大サイズ (バイト数) | 16 777 216 |
| 診断領域の最大サイズ | 90K |
| 配列変数の最大サイズ | 4GB |
1 アプリケーション・リクエスターとして、 Db2 for i は、最大 255 バイトの許可名を送信できます。
2 REXX プロシージャーの場合、限度は 33 です。
3 RPG、 COBOL、またはREXXプログラムの場合、上限は64です。
4 表示される値は近似値です。
5 これらは、DECFLOAT の通常の数値の制限です。 DECFLOAT には、NaN および無限大などの特殊値も含まれており、これらの特殊値も有効です。 また、DECFLOAT は文書化された範囲外の非正規数もサポートします。
6 列が NOT NULL の場合、最大数はもう 1 つです。
7 シーケンスの場合、制限は 500 です。
8 参照されるメンバー (およびパーティション) の最大数も 1000 です。 DELETE および UPDATE ステートメントでは、最大数は 256 です。 複雑な SQL ステートメントでは、参照できる表数は、内部構造によって制限される場合があります。
9 この制限は内部構造によって制限され、ステートメントで定数がどのように使用されているか、および非常に大きいストリング定数または変数が使用されているかによって、より少ない場合があります。
10 この制限は、構文解析される SQL ステートメント用に生成される内部構造のサイズに基づきます。
11 CQE が SELECT ステートメントを処理した場合、限度は 32766 です。 ICU 照合順序または ALWCPYDTA(*NO) が使用されている場合には , この限界は小さくなります。
12 SQL プロシージャーおよび SQL 関数は、最大 2000 個のパラメーターを持つことができます。 外部プロシージャーおよび外部関数のパラメーター数は、 2000 を超えることはできず、言語によって許可されるパラメーターの最大数によって制限されます。
13 RPG/400® や PL/I のプログラムでは、旧来のパラメータ受け渡し技法が使われる場合、上限はおよそ4000である。 この制限は、プログラムで使用できるポインターの数によるものです。 それ以外の場合はすべて、オペレーティング・システムの制約に基づいて制限があります。
14 1 つのジョブで同時にオープンできるカーソルの最大数は、約 20 966です。
15 SQL Server モードのトランザクションでのロケーターの最大数は 209 000 です。
16 DRDA 接続ごとに割り振られるハンドルの最大数は 500 です。
17 DRDA パッケージの 最大サイズは、QAQQINI オプションを使用して 500 メガバイトから 1 ギガバイトに増やすことができます。
16 terabytes