スケーラブルデータベースサーバ HiRDB Version 8 XDM/RD E2接続機能

[目次][索引][前へ][次へ]

付録A.2 SQLのデータ型とCOBOL言語のデータ記述

SQLのデータ型とCOBOL言語のデータ記述の対応は,マニュアル「HiRDB Version 8 UAP開発ガイド」の「SQLのデータ型とCOBOL言語のデータ記述」で示す対応に従います。ただし,XDM/RD E2接続機能で固有の対応をする場合があるので注意が必要です。

<この項の構成>
(1) 配列,繰返し列を使用しない場合
(2) 配列を使用する場合
(3) 繰返し列を使用する場合

(1) 配列,繰返し列を使用しない場合

SQLのデータ型とCOBOL言語のデータ記述の対応の,XDM/RD E2接続機能を使用時に固有の追加項目を次の表に示します。

表A-10 SQLのデータ型とCOBOL言語のデータ記述(追加項目)

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
 
  1. 変数名-RESERVEDは,使用しません。
  2. 変数名-LENGTHは,CLOBの実際の長さ(バイト)になります。
  3. 変数名-DATAは,CLOBのデータ格納領域(mは実際のデータ長)になります。

注※3
CLOB位置付け子のUAPの記述は,内部的に次のように展開されます。
 
L1 基本項目名 PICTURE S9(9) COMPUTATIONAL.
 

 

また,SQLのデータ型とCOBOL言語のデータ記述の変更前と変更後を表A-11および表A-12に示します。

表A-11 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:小数秒精度

表A-12 SQLのデータ型とCOBOL言語のデータ記述(変更後)

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接続機能を使用時に固有の追加項目(配列を使用する場合)を次の表に示します。

表A-13 配列を使用する場合のSQLのデータ型とCOBOL言語のデータ記述(追加項目)

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言語のデータ記述の変更前と変更後を表A-14および表A-15に示します。

表A-14 配列を使用する場合の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:小数秒精度

表A-15 配列を使用する場合のSQLのデータ型とCOBOL言語のデータ記述(変更前)

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接続機能を使用時に固有の追加項目(繰返し列を使用する場合)を次の表に示します。

表A-16 繰返し列を使用する場合のSQLのデータ型とCOBOL言語のデータ記述(追加項目)

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言語のデータ記述の変更前と変更後を表A-17および表A-18に示します。

表A-17 繰返し列を使用する場合の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:小数秒精度

表A-18 繰返し列を使用する場合のSQLのデータ型とCOBOL言語のデータ記述(変更後)

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:小数秒精度

太字の部分が変更点です。