付録F.2 SQLのデータ型とCOBOL言語のデータ記述
SQLのデータ型とCOBOL言語のデータ記述の対応を示します。
なお,データの受け渡しには,対応するデータ型以外に,変換,又は代入できるデータ型も使用できます。
- 〈この項の構成〉
(1) SQLのデータ型とCOBOL言語のデータ記述
SQLのデータ型とCOBOL言語のデータ記述を次の表に示します。なお,表中のデータ記述は,次のように表記することもできます。
- PICTURE:
-
PIC
- COMPUTATIONAL:
-
COMP
- COMPUTATIONAL-n:
-
COMP-n
- 9(n):
-
99…9
- X(n):
-
XX…X
- OCCURS n TIMES:
-
OCCURS 1 TO n TIMES
OCCURS 1 TO n
OCCURS n
SQLのデータ型 |
COBOL言語のデータ記述 |
項目の記述 |
備 考 |
|
---|---|---|---|---|
SMALLINT |
L1 基本項目名 PICTURE S9(4) COMPUTATIONAL. |
基本項目,又は独立項目 |
− |
|
INTEGER |
L1 基本項目名 PICTURE S9(9) COMPUTATIONAL. |
基本項目,又は独立項目 |
− |
|
DECIMAL[(p[,s])] |
L1 基本項目名 PICTURE S9(p-s)[V9(s)] COMPUTATIONAL-3. |
基本項目,又は独立項目 |
1≦p≦38※10, 0≦s≦p p=sの場合,SV9(s)とします。 s=0の場合,[V9(s)]を省略します。 |
|
L1 基本項目名 PICTURE S9(p-s)[V9(s)] DISPLAY SIGN LEADING SEPARATE.※9※12 |
||||
L1 基本項目名 PICTURE S9(p-s)[V9(s)] DISPLAY SIGN TRAILING.※11※12※13 |
||||
SMALLFLT (REAL) |
L1 基本項目名 COMPUTATIONAL-1. |
基本項目,又は独立項目 |
− |
|
FLOAT (DOUBLE PRECISION) |
L1 基本項目名 COMPUTATIONAL-2. |
基本項目,又は独立項目 |
− |
|
CHAR[(n)] [CHARACTER SET [MASTER.]EBCDIK] |
L1 基本項目名 [CHARACTER SET[IS] [MASTER.]EBCDIK] PICTURE X(n).※5 |
基本項目,又は独立項目 |
1≦n≦30000 |
|
CHAR[(2n)] CHARACTER SET [MASTER.]UTF16 |
HiRDBサーバの既定文字集合がUTF-8,又はIVS対応UTF-8以外の場合:※15 CHAR型は使用できません。 HiRDBサーバの既定文字集合がUTF-8,又はIVS対応UTF-8の場合:※15 L1 基本項目名 PICTURE N(n). |
基本項目,又は独立項目 |
1≦n≦15000 |
|
VARCHAR(n) [CHARACTER SET [MASTER.]EBCDIK] |
L2 集団項目名 [CHARACTER SET[IS] [MASTER.]EBCDIK]. L3 基本項目名1 PICTURE S9(4) COMPUTATIONAL. L3 基本項目名2 PICTURE X(n).※5 |
二つの基本項目から構成される集団項目 基本項目名1:文字列長 基本項目名2:文字列 文字列長はバイト数 |
1≦n≦32000 |
|
VARCHAR(2n) CHARACTER SET [MASTER.]UTF16 |
HiRDBサーバの既定文字集合がUTF-8,又はIVS対応UTF-8以外の場合:※15 VARCHAR型は使用できません。 HiRDBサーバの既定文字集合がUTF-8,又はIVS対応UTF-8の場合:※15 L2 集団項目名. L3 基本項目名1 PICTURE S9(4) COMPUTATIONAL. L3 基本項目名2 PICTURE N(n). |
二つの基本項目から構成される集団項目 基本項目名1:文字列長 基本項目名2:文字列 文字列長はバイト数 |
1≦n≦16000 |
|
NCHAR[(n)] |
HiRDBサーバの既定文字集合がUTF-8,又はIVS対応UTF-8以外の場合:※15 L1 基本項目名 PICTURE N(n). HiRDBサーバの既定文字集合がUTF-8,又はIVS対応UTF-8の場合:※15 NCHAR型は使用できません。 |
基本項目,又は独立項目 |
1≦n≦15000 |
|
NVARCHAR(n) |
HiRDBサーバの既定文字集合がUTF-8,又はIVS対応UTF-8以外の場合:※15 L2 集団項目名. L3 基本項目名1 PICTURE S9(4) COMPUTATIONAL. L3 基本項目名2 PICTURE N(n). HiRDBサーバの既定文字集合がUTF-8,又はIVS対応UTF-8の場合:※15 NVARCHAR型は使用できません。 |
二つの基本項目から構成される集団項目 基本項目名1:文字列長基本項目名2:文字列 |
1≦n≦16000 |
|
MCHAR[(n)] |
L1 基本項目名 PICTURE X(n).※6 HiRDBサーバの既定文字集合がUTF-8,又はIVS対応UTF-8の場合は※15,次のように記述することもできます。 L1 基本項目名 PICTURE N(n2).※14 |
基本項目,又は独立項目 |
1≦n≦30000 |
|
MVARCHAR(n) |
L2 集団項目名. L3 基本項目名1 PICTURE S9(4) COMPUTATIONAL. L3 基本項目名2 PICTURE X(n).※6 HiRDBサーバの既定文字集合がUTF-8,又はIVS対応UTF-8の場合は※15,次のように記述することもできます。 L2 集団項目名. L3 基本項目名1 PICTURE S9(4) COMPUTATIONAL. L3 基本項目名2 PICTURE N(n2).※14 |
二つの基本項目から構成される集団項目 基本項目名1:文字列長 基本項目名2:文字列 |
1≦n≦32000 |
|
DATE |
L1 基本項目名 PICTURE X(10).※6 |
基本項目,又は独立項目 |
− |
|
TIME |
L1 基本項目名 PICTURE X(8).※6 |
基本項目,又は独立項目 |
− |
|
TIMESTAMP[(p)] |
L1 基本項目名 PICTURE X(n).※6 |
基本項目,又は独立項目 |
p=0の場合はn=19 p=2の場合はn=21,22 p=4の場合はn=23,24 p=6の場合はn=25,26 |
|
INTERVAL YEARTO DAY |
L1 基本項目名 PICTURE S9(8) COMPUTATIONAL-3. |
基本項目,又は独立項目 |
− |
|
INTERVAL HOUR TO SECOND |
L1 基本項目名 PICTURE S9(6) COMPUTATIONAL-3. |
基本項目,又は独立項目 |
− |
|
ROW※3 |
この表中のデータ項目と集団項目の組み合わせ※1 |
複数の基本項目から構成される集団項目 |
1≦全体長≦30000 |
|
BLOB |
L2 集団項目名※2 [USAGE [IS]] SQL TYPE IS BLOB(n{K|M|G}).※4※7 |
基本項目 |
単位省略時: 1≦n≦2147483647 単位がK: 1≦n≦2097152 単位がM: 1≦n≦2048 単位がG: 1≦n≦2 |
|
BINARY(n) |
L2 集団項目名. L3 基本項目名1 PICTURE S9(9) COMPUTATIONAL. L3 基本項目名2 PICTURE X(n).※5※7 |
二つの基本項目から構成される集団項目 基本項目名1:文字列長 基本項目名2:文字列 文字列長はバイト数 |
1≦n≦2147483647 |
|
BLOB位置付け子 |
L1 基本項目名 SQL TYPE IS BLOB AS LOCATOR.※8 |
基本項目,又は独立項目 |
− |
|
BINARY位置付け子 |
L1 基本項目名 SQL TYPE IS BINARY AS LOCATOR.※8 |
基本項目,又は独立項目 |
− |
|
標識変数 |
BLOB,BINARY,BLOB位置付け子,BINARY位置付け子以外 |
L1 基本項目名 PICTURE S9(4) COMPUTATIONAL. |
基本項目,又は独立項目 |
− |
BLOB,BINARY,BLOB位置付け子,BINARY位置付け子 |
L1 基本項目名 PICTURE S9(9) COMPUTATIONAL. |
|||
SQL文 |
L2 集団項目名. L3 基本項目名1 PICTURE S9(9) COMPUTATIONAL. L3 基本項目名2 PICTURE X(n). |
二つの基本項目から構成される集団項目 基本項目名1:文字列長 基本項目名2:文字列 |
1≦n≦2000000 |
- (凡例)
-
L1:レベル番号01〜49,又は77
L2:レベル番号01〜48
L3:レベル番号02〜49(L2<L3)
n:長さ(バイト)
p:精度(全体のけた数)
s:位取り(小数点以下のけた数)
−:なし
- 注※1
-
次に示す句を使用できます。
-
REDEFINES句
-
OCCURS句
-
ADDRESSED BY句
FIX属性の表を行単位に操作する場合,1行分のデータを格納するデータ項目を集団項目として記述します。操作対象の表の各列と集団項目に従属する各データ項目とが対応するように記述します。各列に対応するデータ項目はその列のデータ型に対応するデータ記述を使用して記述します。ただし,データ形式の変換が必要になるデータ記述は使用できません。
データ形式の変換が必要になるデータ記述と,その代わりに使用できるデータ記述を次の表に示します。
列のデータ型
データ形式の変換が必要になるため使用できないデータ記述
代わりに使用できるデータ記述
DECIMAL
DISPLAY (外部10進形式)
COMP-3 (内部10進形式)
MCHAR
PICTURE N(日本語項目)
PICTURE X(英数字項目)
DATE
PICTURE X(10)
10=文字列表現の文字数
PICTURE X(4)
4=X'YYYYMMDD'形式のバイト数
TIME
PICTURE X(8)
8=文字列表現の文字数
PICTURE X(3)
3=X'hhmmss'形式のバイト数
TIMESTAMP(p)
PICTURE X(n)
n=文字列表現の文字数
PICTURE X(n)
n=7+p/2
n=X'YYYYMMDDhhmmss〔nn…n〕'形式のバイト数
操作対象の表の列に対応するデータ項目を,REDEFINES句を使用して再定義できます。この場合,再定義する項目は再定義される項目に対応する列のデータ型と関係なく記述できます。ただし,表「SQLのデータ型とCOBOL言語のデータ記述」のINTEGER,SMALLINT,DECIMAL,FLOAT,SMALLFLT,CHAR,及びNCHAR型に対応する基本項目とこれらを組み合わせた集団項目だけが使用できます。これらの基本項目と集団項目に,OCCURS句を指定できます。
プリプロセサの-Xbオプションを指定する場合は,ROW型のデータ項目に含まれる2進項目のデータ記述のUSAGE句にCOMPの代わりにCOMP-5を指定する必要があります。-Xbオプションを指定しない場合は,ROW型のデータ項目に含まれる2進項目のデータ記述のUSAGE句にCOMPとCOMP-5のどちらでも指定できます。
-
- 注※2
-
集団項目名は21文字以下にしてください。ただし,COBOL2002の場合は,22文字以下にしてください。
- 注※3
-
HiRDBサーバとHiRDBクライアントのエンディアンが同じ場合にだけ,ROW型を使用できます。
- 注※4
-
BLOBのUAPの記述は,内部的に次のように展開されます。
L2 集団項目名. 49 集団項目名-RESERVED PIC S9(9) USAGE IS BINARY. … 1 49 集団項目名-LENGTH PIC S9(9) USAGE IS BINARY. … 2 49 集団項目名-DATA PIC X(m). … 3
-
変数名-RESERVEDは,使用しません。
-
変数名-LENGTHは,BLOBの実際の長さになります。
-
変数名-DATAは,BLOBのデータ格納領域(mは実際のデータ長)になります。
-
- 注※5
-
Xの代わりに9を使用して定義できます。9を使用して定義した場合,数字以外の文字を含む文字列を代入したり,検索結果として受け取ったときの動作はCOBOL言語のコンパイラの実装に依存します。
- 注※6
-
Xの代わりに9を使用して定義した場合,プリプロセス時にエラーとなりませんが,使用しないでください。
- 注※7
-
宣言できる上限値は,COBOLコンパイラの実装に依存します。詳細については,使用するCOBOLコンパイラのマニュアルを参照してください。
- 注※8
-
内部的には,次のように展開されます。
L1 基本項目名 PICTURE S9(9) COMPUTATIONAL.
- 注※9
-
HiRDBサーバのデータ型はDECIMAL型ですが,先頭1バイトに演算符号が付く外部10進項目として表します。
- 注※10
-
COBOLコンパイラの仕様に依存します。例えば,COBOL85の場合は1≦p≦18となります。
- 注※11
-
HiRDBサーバのデータ型はDECIMAL型ですが,右端1バイトの上位4ビットに演算符号が付く外部10進項目(ゾーン形式)として表します。
- 注※12
-
演算符号が付く数字項目にデータ項目の表現形式が指定されていない場合は,DISPLAY(外部10進項目)とみなします。演算符号が付く外部10進項目にSIGN句が指定されていない場合は,演算符号の位置と表現形式はDISPLAY SIGN TRAILING形式と同じであるとみなします。
- 注※13
-
DISPLAY SIGN TRAILING形式は,COBOL85及びCOBOL2002でだけサポートしています。
- 注※14
-
COBOL言語の日本語項目(PICTURE N)を含むこのデータ記述は,COBOL2002のUnicode機能を使用する場合にだけ,SQLの混在文字データ型(MCHAR又はMVARCHAR)に対応するデータ記述として使用できます。
COBOL2002のUnicode機能を使用したUAPの実行については「COBOL2002のUnicode機能を使用したUAPの実行」を参照してください。
このデータ記述は,埋込み変数の宣言,及び?パラメタの値を格納するデータ領域の宣言に使用できます。
- 埋込み変数の場合
-
-XU16オプションの指定に従って,文字集合名UTF-16LE又はUTF-16BEを指定した文字データ型(CHAR又はVARCHAR)のデータとして扱います。詳細を次の表に示します。
データ記述の形式
COBOL言語のデータ記述
埋込み変数の属性
データ型
文字集合名
固定長
L1 基本項目名
PICTURE N(n2).
CHAR(m)
m = 2×n2
UTF-16LE又はUTF-16BE
可変長
L2 集団項目名.
L3 基本項目名1
PICTURE S9(4)
COMPUTATIONAL.
L3 基本項目名2
PICTURE N(n2).
VARCHAR(m)
m = 2×n2
UTF-16LE又はUTF-16BE
注 可変長形式の基本項目名1には,基本項目名2に格納する日本語文字列の長さをバイト単位で指定します。日本語項目に格納するデータの文字コードはUTF-16(UCS-2の範囲内)になるため,日本語文字列のバイト数は文字数の2倍になります。なお,このバイト数は2×n2以下になります。
- ?パラメタの値を格納するデータ領域の場合
-
?パラメタの値を格納するデータ領域の宣言にこのデータ記述を使用する場合は,SQL記述領域と文字集合名記述領域を次の表に示すとおりに設定してください。
データ記述の形式
COBOL言語のデータ記述
SQL記述領域の設定値
文字集合名記述領域の設定値
データコード
データ長
固定長
L1 基本項目名
PICTURE N(n2).
CHAR型のデータコード
2×n2
UTF-16LE又はUTF-16BE
可変長
L2 集団項目名.
L3 基本項目名1
PICTURE S9(4)
COMPUTATIONAL.
L3 基本項目名2
PICTURE N(n2).
VARCHAR型のデータコード
2×n2
UTF-16LE又はUTF-16BE
注 可変長形式の基本項目名1には,基本項目名2に格納する日本語文字列の長さをバイト単位で指定します。日本語項目に格納するデータの文字コードはUTF-16(UCS-2の範囲内)になるため,日本語文字列のバイト数は文字数の2倍になります。なお,このバイト数は2×n2以下になります。
なお,文字集合名の詳細については,「文字集合名記述領域のSQLCSNに設定できる文字集合情報」を参照してください。
- 注※15
-
pdntenvコマンド(UNIX版の場合はpdsetupコマンド)で,文字コード種別にutf-8を指定した場合に,HiRDBサーバの既定文字集合がUTF-8になります。
また,文字コード種別にutf-8_ivsを指定した場合,HiRDBサーバの既定文字集合がIVS対応UTF-8になります。
(2) 配列を使用した場合のSQLのデータ型とCOBOL言語のデータ記述
配列を使用した場合のSQLのデータ型とCOBOL言語のデータ記述を次の表に示します。
SQLのデータ型 |
COBOL言語のデータ記述 |
項目の記述 |
備 考 |
|
---|---|---|---|---|
SMALLINT |
L2 基本項目名 PICTURE S9(4) COMPUTATIONAL OCCURS m TIMES. |
OCCURSの指定によって同じデータ構造を繰り返す反復データ項目から構成される集団項目 |
− |
|
INTEGER |
L2 基本項目名 PICTURE S9(9) COMPUTATIONAL OCCURS m TIMES. |
− |
||
DECIMAL [(p[,s])] |
L2 基本項目名 PICTURE S9(p-s)[V9(s)] COMPUTATIONAL-3 OCCURS m TIMES. |
1≦p≦38※3, 0≦s≦p p=sの場合,SV9(s)とします。 s=0の場合,[V9(s)]を省略します。 |
||
L2 基本項目名 PICTURE S9(p-s)[V9(s)] DISPLAY SIGN LEADING SEPARATE OCCURS m TIMES. |
||||
L2 基本項目名 PICTURE S9(p-s)[V9(s)] DISPLAY SIGN TRAILING OCCURS m TIMES. |
||||
SMALLFLT (REAL) |
L2 基本項目名 COMPUTATIONAL-1 OCCURS m TIMES. |
− |
||
FLOAT (DOUBLE PRECISION) |
L2 基本項目名 COMPUTATIONAL-2 OCCURS m TIMES. |
− |
||
CHAR[(n)] [CHARACTER SET [MASTER.]EBCDIK] |
L2 基本項目名 [CHARACTER SET[IS] [MASTER.]EBCDIK] PICTURE X(n) OCCURS m TIMES.※1 |
1≦n≦30000 |
||
CHAR[(2n)] CHARACTER SET [MASTER.]UTF16 |
HiRDBサーバの既定文字集合がUTF-8,又はIVS対応UTF-8以外の場合:※5 CHAR型は使用できません。 HiRDBサーバの既定文字集合がUTF-8,又はIVS対応UTF-8以外の場合:※5 L2 基本項目名 PICTURE N(n) OCCURS m TIMES. |
1≦n≦15000 |
||
VARCHAR(n) [CHARACTER SET [MASTER.]EBCDIK] |
L2 集団項目名2 [CHARACTER SET[IS] [MASTER.]EBCDIK] OCCURS m TIMES. L3 基本項目名1 PICTURE S9(4) COMPUTATIONAL. L3 基本項目名2 PICTURE X(n).※1 |
1≦n≦32000 |
||
VARCHAR(2n) CHARACTER SET [MASTER.]UTF16 |
HiRDBサーバの既定文字集合がUTF-8,又はIVS対応UTF-8以外の場合:※5 VARCHAR型は使用できません。 HiRDBサーバの既定文字集合がUTF-8,又はIVS対応UTF-8以外の場合:※5 L2 集団項目名2 OCCURS m TIMES. L3 基本項目名1 PICTURE S9(4) COMPUTATIONAL. L3 基本項目名2 PICTURE N(n). |
1≦n≦16000 |
||
NCHAR[(n)] |
HiRDBサーバの既定文字集合がUTF-8,又はIVS対応UTF-8以外の場合:※5 L2 基本項目名 PICTURE N(n) OCCURS m TIMES. HiRDBサーバの既定文字集合がUTF-8,又はIVS対応UTF-8以外の場合:※5 NCHAR型は使用できません。 |
1≦n≦15000 |
||
NVARCHAR(n) |
HiRDBサーバの既定文字集合がUTF-8,又はIVS対応UTF-8以外の場合:※5 L2 集団項目名2 OCCURS m TIMES. L3 基本項目名1 PICTURE S9(4) COMPUTATIONAL. L3 基本項目名2 PICTURE N(n). HiRDBサーバの既定文字集合がUTF-8,又はIVS対応UTF-8以外の場合:※5 NVARCHAR型は使用できません。 |
1≦n≦16000 |
||
MCHAR[(n)] |
L2 基本項目名 PICTURE X(n) OCCURS m TIMES.※2 HiRDBサーバの既定文字集合がUTF-8,又はIVS対応UTF-8の場合は※5,次のように記述することもできます。 L2 基本項目名 PICTURE N(n2) OCCURS m TIMES.※4 |
1≦n≦30000 |
||
MVARCHAR(n) |
L2 集団項目名2 OCCURS m TIMES. L3 基本項目名1 PICTURE S9(4) COMPUTATIONAL. L3 基本項目名2 PICTURE X(n).※2 HiRDBサーバの既定文字集合がUTF-8,又はIVS対応UTF-8の場合は※5,次のように記述することもできます。 L2 集団項目名2 OCCURS m TIMES. L3 基本項目名1 PICTURE S9(4) COMPUTATIONAL. L3 基本項目名2 PICTURE N(n2).※4 |
1≦n≦32000 |
||
DATE |
L2 基本項目名 PICTURE X(10) OCCURS m TIMES.※2 |
− |
||
TIME |
L2 基本項目名 PICTURE X(8) OCCURS m TIMES.※2 |
− |
||
TIMESTAMP(p) |
L2 基本項目名 PICTURE X(n) OCCURS m TIMES.※2 |
p=0の場合,n=19 p=2の場合,n=21,22 p=4の場合,n=23,24 p=6の場合,n=25,26 |
||
INTERVAL YEARTO DAY |
L2 基本項目名 PICTURE S9(8) COMPUTATIONAL-3 OCCURS m TIMES. |
− |
||
INTERVAL HOUR TO SECOND |
L2 基本項目名 PICTURE S9(6) COMPUTATIONAL-3 OCCURS m TIMES. |
− |
||
ROW |
L2 集団項目名2 OCCURS m TIMES. この表の中のデータ項目と集団項目の組み合わせ※6 |
− |
||
BLOB |
記述できない |
記述できない |
− |
|
BINARY |
L2 集団項目名2 OCCURS m TIMES. L3 基本項目名1 PICTURE S9(9) COMPUTATIONAL. L3 基本項目名2 PICTURE X(n).※1 |
OCCURSの指定によって同じデータ構造を繰り返す反復データ項目から構成される集団項目 |
|
|
BLOB位置付け子 |
記述できない |
記述できない |
− |
|
BINARY位置付け子 |
L2 基本項目名 SQL TYPE IS BINARY AS LOCATOR OCCURS m TIMES. |
OCCURSの指定によって同じデータ構造を繰り返す反復データ項目から構成される集団項目 |
− |
|
標識変数 |
BINARY,BINARY位置付け子以外 |
L2 基本項目名 PICTURE S9(4) COMPUTATIONAL OCCURS m TIMES. |
− |
|
BINARY,BINARY位置付け子 |
L2 基本項目名 PICTURE S9(9) COMPUTATIONAL OCCURS m TIMES. |
− |
||
SQL文 |
記述できない |
記述できない |
− |
- (凡例)
-
L2:レベル番号02〜49(L2<L3)
L2にはレベル番号01,66,77,又は88を指定できません。詳細はCOBOL言語のマニュアルのOCCURS句の構文規則を参照してください。
L3:レベル番号03〜49
m:配列の要素数(1〜4,096)
n:長さ(バイト)
p:精度(全体のけた数)
s:位取り(小数点以下のけた数)
−:なし
- 注※1
-
Xの代わりに9を使用して定義できます。9を使用して定義した場合,数字以外の文字を含む文字列を代入したり,検索結果として受け取ったときの動作はCOBOL言語のコンパイラの実装に依存します。
- 注※2
-
Xの代わりに9を使用して定義した場合,プリプロセス時にエラーとなりませんが,使用しないでください。
- 注※3
-
COBOLコンパイラの仕様に依存します。例えば,COBOL85の場合は1≦p≦18となります。
- 注※4
-
COBOL言語の日本語項目(PICTURE N)を含むこのデータ記述は,COBOL2002のUnicode機能を使用する場合にだけ,SQLの混在文字データ型(MCHAR又はMVARCHAR)に対応するデータ記述として使用できます。詳細については,表「SQLのデータ型とCOBOL言語のデータ記述」のMCHAR[(n)]及びMVARCHAR(n)の注を参照してください。
- 注※5
-
pdntenvコマンド(UNIX版の場合はpdsetupコマンド)で,文字コード種別にutf-8を指定した場合に,HiRDBサーバの既定文字集合がUTF-8になります。
また,文字コード種別にutf-8_ivsを指定した場合,HiRDBサーバの既定文字集合がIVS対応UTF-8になります。
- 注※6
-
組み合わせの詳細については,表「SQLのデータ型とCOBOL言語のデータ記述」を参照してください。
(3) 繰返し列を使用した場合のSQLのデータ型とCOBOL言語のデータ記述
繰返し列を使用した場合のSQLのデータ型とCOBOL言語のデータ記述を次の表に示します。
SQLのデータ型 |
COBOL言語のデータ記述 |
項目の記述 |
備考 |
---|---|---|---|
SMALLINT |
L2 集団項目名. L3 基本項目名1 PICTURE S9(9) COMPUTATIONAL. L3 基本項目名2 PICTURE S9(4) COMPUTATIONAL OCCURS m TIMES. |
二つの基本項目から構成される集団項目 |
− |
INTEGER |
L2 集団項目名. L3 基本項目名1 PICTURE S9(9) COMPUTATIONAL. L3 基本項目名2 PICTURE S9(9) COMPUTATIONAL OCCURS m TIMES. |
− |
|
DECIMAL [(p[,s])] |
L2 集団項目名. L3 基本項目名1 PICTURE S9(9) COMPUTATIONAL. L3 基本項目名2 PICTURE S9(p-s)[V9(s)] COMPUTATIONAL-3 OCCURS m TIMES. |
1≦p≦38※3, 0≦s≦p p=sの場合,SV9(s)とします。 s=0の場合,[V9(s)]を省略します。 |
|
L2 集団項目名. L3 基本項目名1 PICTURE S9(9) COMPUTATIONAL. L3 基本項目名2 PICTURE S9(p-s)[V9(s)] DISPLAY SIGN LEADING SEPARATE OCCURS m TIMES. |
|||
L2 集団項目名. L3 基本項目名1 PICTURE S9(9) COMPUTATIONAL. L3 基本項目名2 PICTURE S9(p-s)[V9(s)] DISPLAY SIGN TRAILING OCCURS m TIMES. |
|||
SMALLFLT (REAL) |
L2 集団項目名. L3 基本項目名1 PICTURE S9(9) COMPUTATIONAL. L3 基本項目名2 COMPUTATIONAL-1 OCCURS m TIMES. |
− |
|
FLOAT (DOUBLE PRECISION) |
L2 集団項目名. L3 基本項目名1 PICTURE S9(9) COMPUTATIONAL. L3 基本項目名2 COMPUTATIONAL-2 OCCURS m TIMES. |
− |
|
CHAR[(n)] |
L2 集団項目名. L3 基本項目名1 PICTURE S9(9) COMPUTATIONAL. L3 基本項目名2 PICTURE X(n) OCCURS m TIMES.※1 |
1≦n≦30000 |
|
VARCHAR(n) |
L2 集団項目名. L3 基本項目名1 PICTURE S9(9) COMPUTATIONAL. L3 集団項目名2 OCCURS m TIMES. L4 基本項目名3 PICTURE S9(4) COMPUTATIONAL. L4 基本項目名4 PICTURE X(n).※1 |
二つの基本項目から構成される集団項目と,一つの基本項目から成る集団項目 |
1≦n≦32000 |
NCHAR[(n)] |
HiRDBサーバの既定文字集合がUTF-8,又はIVS対応UTF-8以外の場合:※5 L2 集団項目名. L3 基本項目名1 PICTURE S9(9) COMPUTATIONAL. L3 基本項目名2 PICTURE N(n) OCCURS m TIMES. HiRDBサーバの既定文字集合がUTF-8,又はIVS対応UTF-8の場合:※5 NCHAR型は使用できません。 |
二つの基本項目から構成される集団項目 |
1≦n≦15000 |
NVARCHAR(n) |
HiRDBサーバの既定文字集合がUTF-8,又はIVS対応UTF-8以外の場合:※5 L2 集団項目名. L3 基本項目名1 PICTURE S9(9) COMPUTATIONAL. L3 集団項目名2 OCCURS m TIMES. L4 基本項目名3 PICTURE S9(4) COMPUTATIONAL. L4 基本項目名4 PICTURE N(n). HiRDBサーバの既定文字集合がUTF-8,又はIVS対応UTF-8の場合:※5 NVARCHAR型は使用できません。 |
二つの基本項目から構成される集団項目と,一つの基本項目から成る集団項目 |
1≦n≦16000 |
MCHAR[(n)] |
L2 集団項目名. L3 基本項目名1 PICTURE S9(9) COMPUTATIONAL. L3 基本項目名2 PICTURE X(n) OCCURS m TIMES.※1 HiRDBサーバの既定文字集合がUTF-8,又はIVS対応UTF-8の場合は※5,次のように記述することもできます。 L2 集団項目名. L3 基本項目名1 PICTURE S9(9) COMPUTATIONAL. L3 基本項目名2 PICTURE N(n2) OCCURS m TIMES.※4 |
二つの基本項目から構成される集団項目 |
1≦n≦30000 |
MVARCHAR(n) |
L2 集団項目名. L3 基本項目名1 PICTURE S9(9) COMPUTATIONAL. L3 集団項目名2 OCCURS m TIMES. L4 基本項目名3 PICTURE S9(4) COMPUTATIONAL. L4 基本項目名4 PICTURE X(n).※1 HiRDBサーバの既定文字集合がUTF-8,又はIVS対応UTF-8の場合は※5,次のように記述することもできます。 L2 集団項目名. L3 基本項目名1 PICTURE S9(9) COMPUTATIONAL. L3 集団項目名2 OCCURS m TIMES. L4 基本項目名3 PICTURE S9(4) COMPUTATIONAL. L4 基本項目名4 PICTURE N(n2).※4 |
二つの基本項目から構成される集団項目と,一つの基本項目から成る集団項目 |
1≦n≦32000 |
DATE |
L2 集団項目名. L3 基本項目名1 PICTURE S9(9) COMPUTATIONAL. L3 基本項目名2 PICTURE X(10) OCCURS m TIMES.※2 |
二つの基本項目から構成される集団項目 |
− |
TIME |
L2 集団項目名. L3 基本項目名1 PICTURE S9(9) COMPUTATIONAL. L3 基本項目名2 PICTURE X(8) OCCURS m TIMES.※2 |
− |
|
TIMESTAMP[(n)] |
L2 集団項目名. L3 基本項目名1 PICTURE S9(9) COMPUTATIONAL. L3 基本項目名2 PICTURE X(n) OCCURS m TIMES.※2 |
p=0の場合はn=19 p=2の場合はn=21,22 p=4の場合はn=23,24 p=6の場合はn=25,26 |
|
INTERVAL YEARTO DAY |
L2 集団項目名. L3 基本項目名1 PICTURE S9(8) COMPUTATIONAL. L3 基本項目名2 PICTURE S9(8) COMPUTATIONAL-3 OCCURS m TIMES. |
− |
|
INTERVAL HOUR TO SECOND |
L2 集団項目名. L3 基本項目名1 PICTURE S9(6) COMPUTATIONAL. L3 基本項目名2 PICTURE S9(6) COMPUTATIONAL-3 OCCURS m TIMES. |
− |
|
ROW |
記述できない |
記述できない |
− |
BLOB |
記述できない |
記述できない |
− |
BINARY |
記述できない |
記述できない |
− |
BLOB位置付け子 |
記述できない |
記述できない |
− |
BINARY位置付け子 |
記述できない |
記述できない |
− |
標識変数(BLOB,BINARY,BLOB位置付け子,BINARY位置付け子以外) |
L2 集団項目名. L3 基本項目名1 PICTURE S9(9) COMPUTATIONAL. L3 基本項目名2 PICTURE S9(4) COMPUTATIONAL OCCURS m TIMES. |
二つの基本項目から構成される集団項目 |
− |
SQL文 |
記述できない |
記述できない |
− |
- (凡例)
-
L2:レベル番号02〜49
L3,L4:レベル番号03〜49
m:繰返し列の最大要素数(2〜30,000)
n:長さ(バイト)
p:精度(全体のけた数)
s:位取り(小数点以下のけた数)
−:なし
- 注1
-
基本項目名1の値は,現在の要素数としてください。
- 注2
-
基本項目名2又は集団項目名2の値は,繰返しの各要素の値としてください。
- 注3
-
標識変数の基本項目名1は,繰返し列全体の標識としてください。
- 注4
-
標識変数の基本項目名2は,繰返し列の各要素の標識としてください。
- 注※1
-
Xの代わりに9を使用して定義できます。9を使用して定義した場合,数字以外の文字を含む文字列を代入したり,検索結果として受け取ったときの動作はCOBOL言語のコンパイラの実装に依存します。
- 注※2
-
Xの代わりに9を使用して定義した場合,プリプロセス時にエラーとなりませんが,使用しないでください。
- 注※3
-
COBOLコンパイラの仕様に依存します。例えば,COBOL85の場合は1≦p≦18となります。
- 注※4
-
COBOL言語の日本語項目(PICTURE N)を含むこのデータ記述は,COBOL2002のUnicode機能を使用する場合にだけ,SQLの混在文字データ型(MCHAR又はMVARCHAR)に対応するデータ記述として使用できます。詳細については,表「SQLのデータ型とCOBOL言語のデータ記述」のMCHAR[(n)]及びMVARCHAR(n)の注を参照してください。
- 注※5
-
pdntenvコマンド(UNIX版の場合はpdsetupコマンド)で,文字コード種別にutf-8を指定した場合に,HiRDBサーバの既定文字集合がUTF-8になります。
また,文字コード種別にutf-8_ivsを指定した場合,HiRDBサーバの既定文字集合がIVS対応UTF-8になります。