スケーラブルデータベースサーバ HiRDB Version 8 UAP開発ガイド
UAP実行時に動的に決定した入出力変数の情報を記述する領域の構成,及び内容について説明します。
SQL記述領域の構成を次の図に示します。
図B-1 SQL記述領域の構成
SQL記述領域の内容を表B-1に示します。
なお,SQLのデータの詳細は,表B-2に示します。
表B-1 SQL記述領域の内容
レベル 番号※1 |
記述領域名 | データ型 | 長さ (バイト) |
値の 設定元 |
内 容 |
---|---|---|---|---|---|
1 | SQLDA | − | 16+16n [24+24n] |
− | SQL記述領域全体の名前です。 |
2 | SQLDAID | char | 8 | HiRDB | SQLDAを示すID 'SQLDA△△△'です。DESCRIBE文,又はDESCRIBE TYPE文を発行したとき格納されます。 |
2 | SQLDABC | long | 4 [8]※6 | HiRDB | SQLDAの長さです。DESCRIBE文,又はDESCRIBE TYPE文を発行したとき格納されます。 |
2 | SQLN※2 | short | 2 | UAP | SQLDAの領域を確保したとき,又はSQLDAを使用するとき,確保したSQLDA領域のSQLVARの個数(1〜4000)を指定します。 |
HiRDB | DESCRIBE文,又はDESCRIBE TYPE文を発行したときSQLDAの領域が不足(SQLN<SQLD)する場合,2進数の0が格納されます。 | ||||
2 | SQLD | short | 2 | UAP | OPEN文,又はEXECUTE文を発行するとき,USING句に指定するSQL記述領域のSQLDには,入力?パラメタ数を指定します。 EXECUTE文を発行するとき,INTO句に指定するSQL記述領域のSQLDAには,出力?パラメタ数を指定します。FETCH文を発行するときは,検索項目数(1〜4000)を指定します。 |
HiRDB | DESCRIBE[OUTPUT]文を発行したとき,2進数の0,検索項目数,又は出力?パラメタ数が設定されます。
DESCRIBE TYPE文を発行したとき,受け取ろうとしたユーザ定義型と継承している,上位のユーザ定義型の全構成要素数が設定されます。ただし,構成要素数が30000を超えた場合,30001が設定されます。 |
||||
2 | SQLVAR | − | 16n [24n] |
− | SQLDIM,SQLCOD,SQLXDIM,SQLLEN,SQLSYS,SQLDATA,及びSQLINDから構成される領域。この領域は,SQLNで指定した個数,又はそれ以上の領域として繰り返し定義する必要があります。 |
3 | SQLDIM | unsigned char | 1 | − | 未使用 |
3 | SQLCOD | unsigned char | 1 | UAP | EXECUTE文,OPEN文,又はFETCH文を発行するときデータコード※3を指定します。 |
HiRDB | DESCRIBE文,又はDESCRIBE TYPE文を発行後,データコード※3が格納されます。 | ||||
3 | SQLXDIM | short | 2 | UAP | EXECUTE文,OPEN文,又はFETCH文を発行するとき,SQLDAで指定する変数の領域の構造によって,次の値を指定します。
|
HiRDB | DESCRIBE文,又はDESCRIBE TYPE文を発行したとき,検索項目又は?パラメタの構造によって,次の値が設定されます。
|
||||
3 | SQLLEN※3※4 | short | 2 | UAP | EXECUTE文,OPEN文,又はFETCH文を発行するときデータの長さ※3を指定します。 |
HiRDB | DESCRIBE文,又はDESCRIBE TYPE文を発行したとき,データの長さ※3が格納されます。 | ||||
3 | SQLSYS | short | 2 | UAP | EXECUTE文,OPEN文,又はFETCH文を発行するとき,次の値を指定します。
|
HiRDB | DESCRIBE文,又はDESCRIBE TYPE文を発行したとき,0が設定されます。 | ||||
3 | SQLDATA※5 | unsigned char * | 4 [8] | UAP | EXECUTE文,又はOPEN文を発行するとき,?パラメタ値※5が格納されているデータ領域のアドレスを指定します。FETCH文を発行するとき,データを受け取るためのデータ領域のアドレスを指定します。 |
3 | SQLIND※5 | short * | 4 [8] | UAP | EXECUTE文,OPEN文,又はFETCH文を発行するとき,標識変数有のデータコードをSQLCODEに設定したときだけ,標識変数の値を受け取るための領域のアドレスを指定します。標識変数の値を受け取るための領域は2バイトです。標識変数の有無の指定については,「表B-2 SQL記述領域に設定するデータコードとデータの長さ」を参照してください。 |
記述領域名 | データ型 | 長さ(バイト) | 内 容 |
---|---|---|---|
SQLPRCSN | B | 1 | 精度(p) |
SQLSCALE | B | 1 | 位取り(s) |
表B-2 SQL記述領域に設定するデータコードとデータの長さ
データ コード 10進数 |
データ コード 16進数 |
標識 変数 |
データ型 | データの長さ | 単位 |
---|---|---|---|---|---|
0 | 00 | − | HiRDBにはないデータ型※1 | 0 | バイト |
1 | 01 | − | 任意のデータ型※6 | 0 | |
48 | 30 | なし | C VARCHAR(n)※4 | 1≦n≦32000※2 | |
49 | 31 | あり | |||
68 | 44 | なし | ROW | 操作対象表の行長L 1≦L≦30000 |
|
69 | 45 | あり | |||
100 | 64 | なし | INTERVAL YEAR TO DAY | 精度8,位取り0 | けた |
101 | 65 | あり | |||
110 | 6E | なし | INTERVAL HOUR TO SECOND | 精度6,位取り0 | |
111 | 6F | あり | |||
112 | 70 | なし | DATE | 4 | バイト |
113 | 71 | あり | |||
120 | 78 | なし | TIME | 3 | |
121 | 79 | あり | |||
124 | 7C | なし | TIMESTAMP[(p)] | 7+↑p÷2↑ p=0,2,4,又は6 |
|
125 | 7D | あり | |||
131 | 83 | − | 抽象データ型※3 | − | − |
144 | 90 | なし | BINARY(n) | 1≦n≦2147483647※2 | バイト |
145 | 91 | あり | |||
146 | 92 | なし | BLOB[(n)] | 1≦n≦2147483647 | |
147 | 93 | あり | |||
154 | 9A | なし | BINARY位置付け子 | 4 | |
155 | 9B | あり | |||
158 | 9E | なし | BLOB位置付け子 | 4 | |
159 | 9F | あり | |||
160 | A0 | なし | MVARCHAR(n) | 1≦n≦32000※2 | |
161 | A1 | あり | |||
164 | A4 | なし | MCHAR[(n)] | 1≦n≦30000 | |
165 | A5 | あり | |||
176 | B0 | なし | NVARCHAR(n) | 1≦n≦16000※2 | 文字 |
177 | B1 | あり | |||
180 | B4 | なし | NCHAR[(n)],又は NATIONAL CHAR[ACTER][(n)] |
1≦n≦15000 | |
181 | B5 | あり | |||
192 | C0 | なし | VARCHAR(n) | 1≦n≦32000※2 | バイト |
193 | C1 | あり | |||
196 | C4 | なし | CHAR[ACTER](n) | 1≦n≦30000 | |
197 | C5 | あり | |||
224 | E0 | なし | FLOAT,又は DOUBLE PRECISION |
8 | |
225 | E1 | あり | |||
226 | E2 | なし | SMALLFLT,又は REAL |
4 | |
227 | E3 | あり | |||
228 | E4 | なし | [LARGE]DEC[IMAL][(p[,s])] | 精度p,位取り因数s 1≦p≦29,0≦s≦p |
けた |
229 | E5 | あり | |||
234 | EA | なし | DISPLAY SIGN LEADING SEPARATE※5 | 精度p,位取り因数s 1≦p≦29,0≦s≦p |
|
235 | EB | あり | |||
236 | EC | なし | DISPLAY SIGN TRAILING※5 | 精度p,位取り因数s 1≦p≦29,0≦s≦p |
|
237 | ED | あり | |||
240 | F0 | なし | INT[EGER] | 4 | バイト |
241 | F1 | あり | |||
244 | F4 | なし | SMALLINT | 2 | |
245 | F5 | あり |
表B-3 SQLVAR_LOBの内容
レベル 番号※1 |
記述領域名 | データ型 | 長さ (バイト) |
値の 設定元 |
内 容 |
---|---|---|---|---|---|
2 | SQLVAR_LOB | − | 16n [24n] |
− | SQLDIM,SQLCOD,SQLXDIM,SQLLOBLEN,SQLDATA, SQLDATA,及びSQLLOBINDから構成される領域です。この領域は,SQLVARで定義し,BLOB型,及びBINARY型のデータを入出力するときにSQLVAR領域に上書きする形で使用してください。 |
3 | SQLDIM | unsigned char | 1 | − | 未使用 |
3 | SQLCOD | unsigned char | 1 | UAP | EXECUTE文,OPEN文,又はFETCH文を発行するときデータコード※2を指定します。 |
HiRDB | DESCRIBE文,又はDESCRIBE TYPE文を発行後,データコード※2が格納されます。 | ||||
3 | SQLXDIM | short | 2 | UAP | EXECUTE文,OPEN文,又はFETCH文を発行するとき,1を指定します。データ領域の構造については,「付録F SQLのデータ型とデータ記述」を参照してください。 |
HiRDB | DESCRIBE文,又はDESCRIBE TYPE文を発行したとき,1が格納されます。 | ||||
3 | SQLLOBLEN※2 | long [int] | 4 | UAP | EXECUTE文,OPEN文,又はFETCH文を発行するときデータの長さ※2を指定します。 |
HiRDB | DESCRIBE文,又はDESCRIBE TYPE文を発行したとき,データの長さ※2が格納されます。 | ||||
3 | SQLDATA※3 | unsigned char * | 4 [8] | UAP | EXECUTE文,又はOPEN文を発行するとき,?パラメタ値が格納されているデータ領域のアドレスを指定します。FETCH文を発行するとき,データを受け取るためのデータ領域のアドレスを指定します。 |
3 | SQLLOBIND※3 | long * [int *] |
4 [8] | UAP | EXECUTE文,OPEN文,又はFETCH文を発行するとき,標識変数有のデータコードをSQLCODEに設定したときだけ,標識変数の値を受け取るための領域のアドレスを指定します。標識変数の値を受け取るための領域は4バイトです。標識変数の有無の指定については,「表B-2 SQL記述領域に設定するデータコードとデータの長さ」を参照してください。 |
All Rights Reserved. Copyright (C) 2006, 2016, Hitachi, Ltd.