付録A.2 SQLのデータ型とCOBOL言語のデータ記述
SQLのデータ型とCOBOL言語のデータ記述の対応は,マニュアル「HiRDB UAP開発ガイド」の「SQLのデータ型とCOBOL言語のデータ記述」で示す対応に従います。ただし,XDM/RD E2接続機能で固有の対応をする場合があるので注意が必要です。
(1) 配列,繰返し列を使用しない場合
SQLのデータ型とCOBOL言語のデータ記述の対応の,XDM/RD E2接続機能を使用時に固有の追加項目を次の表に示します。
SQLのデータ型 |
COBOL言語のデータ記述 |
項目の記述 |
備考 |
|
---|---|---|---|---|
LARGE DECIMAL [(p[,s])] |
L1 基本項目名 PICTURE S9(p-s)[V9(s)] COMPUTATIONAL-3. |
基本項目または独立項目 |
1≦p≦18, 0≦s≦p p=sの場合,SV9(s)とします。 s=0の場合,[V9(s)]を省略します。 |
|
LONG VARCHAR(n) |
L2 集団項目名. L3 基本項目名1 PICTURE S9(4) COMPUTATIONAL. L3 基本項目名2 PICTURE X(n). |
二つの基本項目から構成される集団項目 基本項目名1:文字列長基本項目名2:文字列 |
1≦n≦32,000 |
|
LONG NVARCHAR(n) |
L2 集団項目名. L3 基本項目名1 PICTURE S9(4) COMPUTATIONAL. L3 基本項目名2 PICTURE N(n). |
二つの基本項目から構成される集団項目 基本項目名1:文字列長基本項目名2:文字列 |
1≦n≦16,000 |
|
LONG MVARCHAR(n) |
L2 集団項目名. L3 基本項目名1 PICTURE S9(4) COMPUTATIONAL. L3 基本項目名2 PICTURE X(n). |
二つの基本項目から構成される集団項目 基本項目名1:文字列長 基本項目名2:文字列 |
1≦n≦32,000 |
|
INTERVAL YEAR TO SECOND(q) |
L1 基本項目名 PICTURE S9(14)[V9(q)] COMPUTATION-3. |
基本項目または独立項目 |
q=0,2,4,6 q=0の場合,[V9(q)]を省略します。 q>4の場合,精度>18となるため,q=6の場合は精度=18で展開されるので,V9(4)となります。 |
|
CLOB(n) |
L2 集団項目名※1 [USAGE [IS]] SQL TYPE IS CLOB(n{K|M|G}).※2 |
基本項目 |
単位省略時: 1≦n≦2,147,483,647 単位がKB: 1≦n≦2,097,152 単位がMB: 1≦n≦2,048 単位がGB: 1≦n≦2 |
|
CLOB位置付け子 |
L1 基本項目名 [USAGE [IS]] SQL TYPE IS CLOB AS LOCATOR.※3 |
基本項目または独立項目 |
− |
|
標識変数 |
CLOB |
L4 基本項目名 PICTURE S9(9) COMPUTATIONAL. |
基本項目または独立項目 |
− |
- (凡例)
-
L1:レベル番号01〜49,または77
L2:レベル番号01〜48
L3:レベル番号02〜49(L2<L3)
L4:レベル番号01〜49
n:長さ(バイト)
p:精度(全体のけた数)
q:小数秒精度
s:位取り(小数点以下のけた数)
−:備考はありません。
- 注※1
-
集団項目名は21文字以下にしてください。ただし,COBOL2002の場合は22文字以下にしてください。
- 注※2
-
CLOBのUAPの記述は,内部的に次のように展開されます。
L2 集団項目名. 49 集団項目名-RESERVED PICTURE S(9) USAGE IS BINARY. … 1 49 集団項目名-LENGTH PICTURE S(9) USAGE IS BINARY. … 2 49 集団項目名-DATA PIC X(m). … 3
-
変数名-RESERVEDは,使用しません。
-
変数名-LENGTHは,CLOBの実際の長さ(バイト)になります。
-
変数名-DATAは,CLOBのデータ格納領域(mは実際のデータ長)になります。
-
- 注※3
-
CLOB位置付け子のUAPの記述は,内部的に次のように展開されます。
L1 基本項目名 PICTURE S9(9) COMPUTATIONAL.
また,SQLのデータ型とCOBOL言語のデータ記述の変更前と変更後を表「SQLのデータ型とCOBOL言語のデータ記述(変更前)」および表「SQLのデータ型とCOBOL言語のデータ記述(変更後)」に示します。
SQLのデータ型 |
COBOL言語のデータ記述 |
項目の記述 |
備考 |
---|---|---|---|
TIME |
L1 基本項目名 PICTURE X(8). |
基本項目または独立項目 |
− |
TIMESTAMP[(q)] |
L1 基本項目名 PICTURE X(n). |
基本項目または独立項目 |
q=0の場合:n=19 q=2の場合:n=21,22 q=4の場合:n=23,24 q=6の場合:n=25,26 |
- (凡例)
-
L1:レベル番号01〜49,または77
n:長さ(バイト)
q:小数秒精度
−:備考はありません。
SQLのデータ型 |
COBOL言語のデータ記述 |
項目の記述 |
備考 |
---|---|---|---|
TIME[(q)] |
L1 基本項目名 PICTURE X(n). |
基本項目または独立項目 |
q=0の場合:n=8 q=2の場合:n=11 q=4の場合:n=13 q=6の場合:n=15 |
TIMESTAMP[(q)] |
L1 基本項目名 PICTURE X(n). |
基本項目または独立項目 |
q=0の場合:n=19 q=2の場合:n=22 q=4の場合:n=24 q=6の場合:n=26 |
- (凡例)
-
L1:レベル番号01〜49,または77
n:長さ(バイト)
q:小数秒精度
- 注
-
太字の部分が変更点です。
(2) 配列を使用する場合
SQLのデータ型とCOBOL言語のデータ記述の対応の,XDM/RD E2接続機能を使用時に固有の追加項目(配列を使用する場合)を次の表に示します。
SQLのデータ型 |
COBOL言語のデータ記述 |
項目の記述 |
備考 |
---|---|---|---|
LARGE DECIMAL [(p[,s])] |
L2 基本項目名 PICTURE S9(p-s)[V9(s)] COMPUTATIONAL-3 OCCURS m TIMES. |
OCCURSの指定によって同じデータ構造を繰り返す反復データ項目から構成される集団項目 |
− |
LONG VARCHAR(n) |
L2 集団項目名2 OCCURS m TIMES. L3 基本項目名1 PICTURE S9(4) COMPUTATIONAL. L3 基本項目名2 PICTURE X(n). |
OCCURSの指定によって同じデータ構造を繰り返す反復データ項目から構成される集団項目 |
1≦n≦32,000 |
LONG NVARCHAR(n) |
L2 集団項目名2 OCCURS m TIMES. L3 基本項目名1 PICTURE S9(4) COMPUTATIONAL. L3 基本項目名2 PICTURE N(n). |
OCCURSの指定によって同じデータ構造を繰り返す反復データ項目から構成される集団項目 |
1≦n≦16,000 |
LONG MVARCHAR(n) |
L2 集団項目名2 OCCURS m TIMES. L3 基本項目名1 PICTURE S9(4) COMPUTATIONAL. L3 基本項目名2 PICTURE X(n). |
OCCURSの指定によって同じデータ構造を繰り返す反復データ項目から構成される集団項目 |
1≦n≦32,000 |
INTERVAL YEAR TO SECOND(q) |
L2 基本項目名 PICTURE S9(14)[V9(q)] COMPUTATIONAL-3 OCCURS m TIMES. |
OCCURSの指定によって同じデータ構造を繰り返す反復データ項目から構成される集団項目 |
q=0,2,4,6 q=0の場合,[V9(q)]を省略します。 q>4の場合,精度>18となるため,q=6の場合は精度=18で展開されるので,V9(4)となります。 |
CLOB |
− |
− |
− |
CLOB位置付け子 |
− |
− |
− |
- (凡例)
-
L2:レベル番号02〜49(L2<L3)
L3:レベル番号03〜49
m:配列の要素数
n:長さ(バイト)
p:精度(全体のけた数)
q:小数秒精度
s:位取り(小数点以下のけた数)
−:該当しません。
また,SQLのデータ型とCOBOL言語のデータ記述の変更前と変更後を表「配列を使用する場合のSQLのデータ型とCOBOL言語のデータ記述(変更前)」および表「配列を使用する場合のSQLのデータ型とCOBOL言語のデータ記述(変更後)」に示します。
SQLのデータ型 |
COBOL言語のデータ記述 |
項目の記述 |
備考 |
---|---|---|---|
TIME |
L2 基本項目名 PICTURE X(8) OCCURS m TIMES. |
OCCURSの指定によって同じデータ構造を繰り返す反復データ項目から構成される集団項目 |
− |
TIMESTAMP[(q)] |
L2 基本項目名 PICTURE X(n) OCCURS m TIMES. |
q=0の場合:n=19 q=2の場合:n=21,22 q=4の場合:n=23,24 q=6の場合:n=25,26 |
- (凡例)
-
L2:レベル番号02〜49(L2<L3)
m:配列の要素数
n:長さ(バイト)
q:小数秒精度
−:備考はありません。
SQLのデータ型 |
COBOL言語のデータ記述 |
項目の記述 |
備考 |
---|---|---|---|
TIME[(q)] |
L2 基本項目名 PICTURE X(n) OCCURS m TIMES. |
OCCURSの指定によって同じデータ構造を繰り返す反復データ項目から構成される集団項目 |
q=0の場合:n=8 q=2の場合:n=11 q=4の場合:n=13 q=6の場合:n=15 |
TIMESTAMP[(q)] |
L2 基本項目名 PICTURE X(n) OCCURS m TIMES. |
q=0の場合:n=19 q=2の場合:n=22 q=4の場合:n=24 q=6の場合:n=26 |
- (凡例)
-
L2:レベル番号02〜49(L2<L3)
m:配列の要素数
n:長さ(バイト)
q:小数秒精度
- 注
-
太字の部分が変更点です。
(3) 繰返し列を使用する場合
SQLのデータ型とCOBOL言語のデータ記述の対応の,XDM/RD E2接続機能を使用時に固有の追加項目(繰返し列を使用する場合)を次の表に示します。
SQLのデータ型 |
COBOL言語のデータ記述 |
項目の記述 |
備考 |
---|---|---|---|
LARGE DECIMAL [(p[,s])] |
L2 集団項目名. L3 基本項目名1 PICTURE S9(9) COMPUTATIONAL. L3 基本項目名2 PICTURE S9(p-s)[V9(s)] COMPUTATIONAL-3 OCCURS m TIMES. (P=SのときはSV9(p)とする) |
二つの基本項目から構成される集団項目 |
− |
INTERVAL YEAR TO SECOND(q) |
L2 集団項目名. L3 基本項目名1 PICTURE S9(9) COMPUTATIONAL. L3 基本項目名2 PICTURE S9(14)[V9(q)] COMPUTATIONAL-3 OCCURS m TIMES. |
二つの基本項目から構成される集団項目 |
q=0,2,4,6 q=0の場合,[V9(q)]を省略します。 q>4の場合,精度>18となるため,q=6の場合は精度=18で展開されるので,V9(4)となります。 |
CLOB |
− |
− |
− |
CLOB位置付け子 |
− |
− |
− |
- (凡例)
-
L2:レベル番号02〜49(L2<L3)
L3:レベル番号03〜49
m:繰返し列の最大要素数
p:精度(全体のけた数)
q:小数秒精度
s:位取り(小数点以下のけた数)
−:該当しません。
また,SQLのデータ型とCOBOL言語のデータ記述の変更前と変更後を表「繰返し列を使用する場合のSQLのデータ型とCOBOL言語のデータ記述(変更前)」および表「繰返し列を使用する場合のSQLのデータ型とCOBOL言語のデータ記述(変更後)」に示します。
SQLのデータ型 |
COBOL言語のデータ記述 |
項目の記述 |
備考 |
---|---|---|---|
VARCHAR(n) /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≦n≦32,000 |
NVARCHAR(n) |
L2 集団項目名. L3 基本項目名1 PICTURE S9(9) COMPUTATIONAL. L3 集団項目名2 OCCURS m TIMES. L4 基本項目名3 PICTURE S9(4) COMPUTATIONAL. L4 基本項目名4 PICTURE N(n). |
二つの基本項目から構成される集団項目と,一つの基本項目から構成される集団項目 |
1≦n≦16,000 |
TIME |
L2 集団項目名. L3 基本項目名1 PICTURE S9(9) COMPUTATIONAL. L3 基本項目名2 PICTURE X(8) OCCURS m TIMES. |
二つの基本項目から構成される集団項目 |
− |
TIMESTAMP[(q)] |
L2 集団項目名. L3 基本項目名1 PICTURE S9(9) COMPUTATIONAL. L3 基本項目名2 PICTURE X(n) OCCURS m TIMES. |
二つの基本項目から構成される集団項目 |
q=0の場合:n=19 q=2の場合:n=21,22 q=4の場合:n=23,24 q=6の場合:n=25,26 |
- (凡例)
-
L2:レベル番号02〜49
L3,L4:レベル番号03〜49
m:繰返し列の最大要素数
n:長さ(バイト)
q:小数秒精度
−:備考はありません。
SQLのデータ型 |
COBOL言語のデータ記述 |
項目の記述 |
備考 |
---|---|---|---|
VARCHAR(n) /LONG VARCHAR(n) /MVARCHAR(n) /LONG 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≦n≦32,000 |
NVARCHAR(n) /LONG NVARCHAR(n) |
L2 集団項目名. L3 基本項目名1 PICTURE S9(9) COMPUTATIONAL. L3 集団項目名2 OCCURS m TIMES. L4 基本項目名3 PICTURE S9(4) COMPUTATIONAL. L4 基本項目名4 PICTURE N(n). |
二つの基本項目から構成される集団項目と,一つの基本項目から構成される集団項目 |
1≦n≦16,000 |
TIME[(q)] |
L2 集団項目名. L3 基本項目名1 PICTURE S9(9) COMPUTATIONAL. L3 基本項目名2 PICTURE X(n) OCCURS m TIMES. |
二つの基本項目から構成される集団項目 |
q=0の場合:n=8 q=2の場合:n=11 q=4の場合:n=13 q=6の場合:n=15 |
TIMESTAMP[(q)] |
L2 集団項目名. L3 基本項目名1 PICTURE S9(9) COMPUTATIONAL. L3 基本項目名2 PICTURE X(n) OCCURS m TIMES. |
二つの基本項目から構成される集団項目 |
q=0の場合:n=19 q=2の場合:n=22 q=4の場合:n=24 q=6の場合:n=26 |
- (凡例)
-
L2:レベル番号02〜49
L3,L4:レベル番号03〜49
m:繰返し列の最大要素数
n:長さ(バイト)
q:小数秒精度
- 注
-
太字の部分が変更点です。