Symfoware Server SQLビギナーズガイド - FUJITSU - |
目次 索引 |
SQLのデータ型と対応するCホスト変数のデータ型を以下に示します。
SQLデータ型 |
C変数定義 |
|
---|---|---|
文字列型 |
CHARACTER(n) |
char 変数名[n+1] |
CHARACTER VARYING(n) |
VARCHAR 変数名[n+1] (注2) |
|
各国語 |
NATIONAL CHARACTER(n) |
char CHARACTER SET[IS] |
NATIONAL CHARACTER VARYING(n) |
VARCHAR CHARACTER SET[IS]NCHAR |
|
真数型 |
NUMERIC(p,q) |
NUMERIC(p,q) 変数名 (注4) |
DECIMAL(p,q) |
DECIMAL(p,q) 変数名 (注5) |
|
SMALLINT |
short 変数名 |
|
INTEGER |
long 変数名 (注6) |
|
概数型 |
REAL |
float 変数名 |
DOUBLE PRECISION |
double 変数名 |
|
日時型 |
DATE |
char 変数名[11] |
TIME |
char 変数名[9] |
|
TIMESTAMP |
char 変数名[20] |
|
時間隔型 |
INTERVAL |
|
BLOB型 |
BINARY LARGE OBJECT(n単位) |
SQL TYPE IS BLOB(n単位) 変数名 (注7) |
ROW_ID |
ROW_ID |
ROW_ID 変数名 |
n:長さ、p:精度、q:位取り、単位:K(キロバイト)、 M(メガバイト)、G(ギガバイト)
注1) 各型のポインタ変数を宣言する場合は、変数名の前に*を指定します。
注2) 可変長文字列の場合、コンパイル時に以下の構造体に展開されます。
struct {
short sqllen;
char sqlvar[n+1];
} 変数名
注3) 可変長文字列のポインタ変数の場合、コンパイル時に以下の構造体に展開されます。
struct 変数名_SQLVAR{
short sqllen;
char sqlvar[1];
} *変数名
注4) NUMERIC型の場合、コンパイル時に以下のように展開されます。
char 変数名 [p+1];
注5) DECIMAL型の場合、コンパイル時に以下のように展開されます。
char 変数名 [(p÷2)+1];
注6) 64ビットのSQL埋込みCプログラムの場合、対応するC変数定義はintです。
注7) BLOB型の場合、コンパイル時に以下の構造体に展開されます。
struct {
long 変数名_reserved; 注)
unsigned long 変数名_length; 注)
char 変数名_data[n*1024];
} 変数名
注8) BLOB型のポインタ変数の場合、コンパイル時に以下の構造体に展開されます。
struct 変数名_SQLBLOB{
long 変数名_reserved; 注)
unsigned long 変数名_length;
char 変数名_data[1];
} *変数名
注)64ビットのSQL埋込みCプログラムの場合、longはintに展開されます。
時間隔型と対応するCホスト変数のデータ型を以下に示します。
時間隔型 |
C変数定義 |
|
---|---|---|
年月型 |
INTERVAL YEAR[(n)] TO MONTH |
char 変数名[n+5] |
INTERVAL YEAR[(n)] |
char 変数名[n+2] |
|
INTERVAL MONTH[(n)] |
char 変数名[n+2] |
|
日時型 |
INTERVAL DAY[(n)] TO HOUR |
char 変数名[n+5] |
INTERVAL DAY[(n)] TO MINUTE |
char 変数名[n+8] |
|
INTERVAL DAY[(n)] TO SECOND |
char 変数名[n+11] |
|
INTERVAL DAY[(n)] |
char 変数名[n+2] |
|
INTERVAL HOUR[(n)] TO MINUTE |
char 変数名[n+5] |
|
INTERVAL HOUR[(n)] TO SECOND |
char 変数名[n+8] |
|
INTERVAL HOUR[(n)] |
char 変数名[n+2] |
|
INTERVAL MINUTE[(n)] TO SECOND |
char 変数名[n+5] |
|
INTERVAL MINUTE[(n)] |
char 変数名[n+2] |
|
INTERVAL SECOND[(n)] |
char 変数名[n+2] |
n:桁数(1〜9)
注) 位取り0の真数型が指定可能なので、以下のデータ型も指定できます。
short 変数名 ( n<5の場合 )
SQLのデータ型と対応するCOBOLホスト変数のデータ型を以下に示します。
SQLデータ型 |
COBOL変数定義 |
|
---|---|---|
文字列型 |
CHARACTER(n) |
01 変数名 PIC X(n). |
CHARACTER VARYING(n) |
01 変数名-1. |
|
各国語 |
NATIONAL CHARACTER(n) |
01 変数名 PIC N(n). |
NATIONAL CHARACTER VARYING(n) |
01 変数名-1. |
|
真数型 |
NUMERIC(p,q) |
01 変数名 PIC S9(p-q)V9(q) DISPLAY [SIGN] {LEADING SEPARATE [CHARACTER]|TRAILING}. |
DECIMAL(p,q) |
01 変数名 PIC S9(p-q)V9(q) {PACKED-DECIMAL|COMP-3}. |
|
SMALLINT |
01 変数名 PIC S9(4) {BINARY|COMP}. |
|
INTEGER |
01 変数名 PIC S9(9) {BINARY|COMP}. |
|
概数型 |
REAL |
01 変数名 COMP-1. |
DOUBLE PRECISION |
01 変数名 COMP-2. |
|
日時型 |
DATE |
01 変数名 PIC X(10). |
TIME |
01 変数名 PIC X(8). |
|
TIMESTAMP |
01 変数名 PIC X(19). |
|
時間隔型 |
INTERVAL |
“表:時間隔型と対応するCOBOLホスト変数のデータ型”参照 |
BLOB型 |
BINARY LARGE OBJECT(n単位) |
01 変数名 SQL TYPE IS BLOB(n単位). (注) |
ROW_ID |
ROW_ID |
01 変数名 ROW_ID. |
n:長さ、p:精度、q:位取り、単位:K(キロバイト)、M(メガバイト)、G(ギガバイト)
注) BLOB型の場合、コンパイル時に以下の構造体に展開されます(単位がKの場合)。
01 変数名.49 変数名-RESERVED PIC S9(9) USAGE IS BINARY.49 変数名-LENGTH PIC S9(9) USAGE IS BINARY.
49 変数名-DATA PIC X(n*1024).
時間隔型と対応するCOBOLホスト変数のデータ型を以下に示します。
時間隔型 |
COBOL変数定義 |
|
---|---|---|
年月型 |
INTERVAL YEAR[(n)] TO MONTH |
01 変数名 PIC X(n+4). |
INTERVAL YEAR[(n)] |
01 変数名 PIC X(n+1). |
|
INTERVAL MONTH[(n)] |
01 変数名 PIC X(n+1). |
|
日時型 |
INTERVAL DAY[(n)] TO HOUR |
01 変数名 PIC X(n+4). |
INTERVAL DAY[(n)] TO MINUTE |
01 変数名 PIC X(n+7). |
|
INTERVAL DAY[(n)] TO SECOND |
01 変数名 PIC X(n+10). |
|
INTERVAL DAY[(n)] |
01 変数名 PIC X(n+1). |
|
INTERVAL HOUR[(n)] TO MINUTE |
01 変数名 PIC X(n+4). |
|
INTERVAL HOUR[(n)] TO SECOND |
01 変数名 PIC X(n+7). |
|
INTERVAL HOUR[(n)] |
01 変数名 PIC X(n+1). |
|
INTERVAL MINUTE[(n)] TO SECOND |
01 変数名 PIC X(n+4). |
|
INTERVAL MINUTE[(n)] |
01 変数名 PIC X(n+1). |
|
INTERVAL SECOND[(n)] |
01 変数名 PIC X(n+1). |
n:桁数(1〜9)
注) 位取り0の真数型が指定可能なので、以下のデータ型も指定できます。
01 変数名 PIC S9(n) DISPLAY [SIGN] {LEADING SEPARATE [CHARACTER]|TRAILING}.01 変数名 PIC S9(n) {PACKED-DECIMAL|COMP-3}.
01 変数名 PIC S9(4) {BINARY|COMP}. ( n<5の場合 )
目次 索引 |