判斷對等的 SQL 及 C 或 C++ 資料類型
前置編譯器根據表格來決定主變數的基本 SQLTYPE 及 SQLLEN。 如果主變數與指示器變數一起出現,則 SQLTYPE 是基本 SQLTYPE 加 1。
C 或 C++ 資料類型 | 主變數的 SQLTYPE | 主變數的 SQLLEN | SQL 資料類型 |
---|---|---|---|
短整數 | 500 | 2 | SMALLINT |
長整數 | 496 | 4 | INTEGER |
long long int | 492 | 8 | BIGINT |
decimal (p , s) | 484 | p in byte 1 , s in byte 2 | DECIMAL (p , s) |
_Decimal32 | 996 | 4 | 雖然 SQL 不直接支援此資料類型,但仍視為 DECFLOAT (7)。 |
_Decimal64 | 996 | 8 | DECFLOAT (16) |
_Decimal128 | 996 | 16 | DECFLOAT (34) |
float | 480 | 4 | FLOAT (單一精準度) |
倍整數 | 480 | 8 | FLOAT (倍精準度) |
單一字元形式 | 452 | 1 | CHAR(1) |
NUL-終止字元格式 | 460 | 長度 | VARCHAR (長度-1) |
VARCHAR 結構化表單 | 448 | 長度 | VARCHAR (長度) |
單一圖形表單 | 468 | 1 | GRAPHIC (1) |
以 NUL 終止的單一圖形形式 | 400 | 長度 | VARGRAPHIC (長度-1) |
VARGRAPHIC 結構化表單 | 464 | 長度 | VARGRAPHIC (長度) |
您可以使用下表來判定與給定 SQL 資料類型相等的 C 或 C++ 資料類型。
SQL 資料類型 | C 或 C++ 資料類型 | 附註 |
---|---|---|
SMALLINT | 短整數 | |
INTEGER | 長整數 | |
BIGINT | long long int | |
DECIMAL (p , s) | decimal (p , s) | p 是 1 到 63 的正整數, s 是 0 到 63 的正整數。 |
NUMERIC (p , s) 或非零小數位數二進位 | 沒有確切的對等項目 | 使用 DECIMAL (p , s)。 |
DECFLOAT (16) | _Decimal64 | 僅在 C 中受支援。 |
DECFLOAT (34) | _Decimal128 | 僅在 C 中受支援。 |
FLOAT (單一精準度) | float | |
FLOAT (倍精準度) | 倍整數 | |
CHAR(1) | 單一字元形式 | |
CHAR(N) | 沒有確切的對等項目 | 如果 n> 1 ,請使用 NUL 終止的字元格式。 |
VARCHAR(N) | NUL-終止字元格式 | 至少容許 n+ 1 以容納 NUL 終止字元。 如果資料可以包含字元 NUL (/0) ,請使用 VARCHAR 結構化格式或 SQL VARCHAR。 n 是正整數。 n 的最大值是 32740。 |
VARCHAR 結構化表單 | n 的最大值是 32740。 也可以使用 SQL VARCHAR 格式。 | |
CLOB | 無 | 使用 SQL TYPE IS 來宣告 C 或 C++ 中的 CLOB。 |
GRAPHIC (1) | 單一圖形表單 | |
GRAPHIC (n) | 沒有確切的對等項目 | |
VARGRAPHIC(N) | NUL 終止的圖形表單 | 如果 n > 1 ,請使用以 NUL 終止的圖形格式。 |
VARGRAPHIC 結構化表單 | 如果資料可以包含圖形 NUL 值 (/0/ 0) ,請使用 VARGRAPHIC 結構化表單。 至少容許 n + 1 以容納 NUL 終止字元。 n 是正整數。 n 的最大值為 16370。 |
|
DBCLOB | 無 | 使用 SQL TYPE IS 來宣告 C 或 C++ 中的 DBCLOB。 |
BINARY | 無 | 使用 SQL TYPE IS 在 C 或 C++ 中宣告 BINARY。 |
VARBINARY | 無 | 使用 SQL TYPE IS 在 C 或 C++ 中宣告 VARBINARY。 |
BLOB | 無 | 使用 SQL TYPE IS 來宣告 C 或 C++ 中的 BLOB。 |
DATE | NUL-終止字元格式 | 如果格式為 *USA、*ISO、*JIS 或 *EUR ,則至少容許 11 個字元容納 NUL 終止字元。 如果格式為 *MDY、*YMD 或 *DMY ,則至少容許 9 個字元容納 NUL 終止字元。 如果格式為 *JUL ,則至少容許 7 個字元來容納 NUL 終止字元。 |
VARCHAR 結構化表單 | 如果格式為 *USA、*ISO、*JIS 或 *EUR ,則容許至少 10 個字元。 如果格式為 *MDY、*YMD 或 *DMY ,則至少容許 8 個字元。 如果格式為 *JUL ,則至少容許 6 個字元。 | |
時間 | NUL-終止字元格式 | 至少容許 7 個字元 (9 表示併入秒) ,以容納 NUL 終止字元。 |
VARCHAR 結構化表單 | 至少容許 6 個字元; 8 可包含秒。 | |
TIMESTAM | NUL-終止字元格式 | 容許至少 20 個字元 (33 表示包含所有小數秒) ,以容納 NUL 終止字元。 如果 n 小於 33 ,則在小數秒部分會發生截斷。 |
VARCHAR 結構化表單 | 至少容許 19 個字元。 若要包括所有小數秒,請容許 32 個字元。 如果字元數小於 32 ,則會在小數秒部分進行截斷。 | |
![]() ![]() |
![]() ![]() |
![]() ![]() |
XML | 無 | 使用 SQL TYPE IS 在 C 或 C++ 中宣告 XML。 |
DATALINK | 不支援 | |
ROWID | 無 | 使用 SQL TYPE IS 來宣告 C 或 C++ 中的 ROWID。 |
結果集定位器 (result set locator) | 無 | 使用 SQL TYPE IS 來宣告 C 或 C++ 中的結果集定位器。 |