資料行大小

數值資料類型的資料行(或參數)大小定義為數據行或參數資料類型所使用的數位數目上限,或資料的有效位數。 針對字元類型,這是資料字元的長度;針對二進位資料類型,資料行大小會定義為數據位元組的長度。 針對時間、時間戳記和所有間隔資料類型,這是此資料之字元標記法中的字元數。 下表顯示針對每個精簡 SQL 資料類型所定義的資料行大小。

SQL 類型識別碼 資料行大小
所有字元類型[a],[b] 資料行或參數字元中定義的或最大資料行大小(如SQL_DESC_LENGTH描述元欄位中所包含)。 例如,定義為 CHAR(10) 的單一位元組字元資料行資料行大小為 10。
SQL_DECIMAL SQL_NUMERIC 定義的位數。 例如,定義為 NUMERIC(10,3) 的資料行精確度為 10。
SQL_BIT[c] 1
SQL_TINYINT[c] 3
SQL_SMALLINT[c] 5
SQL_INTEGER[c] 10
SQL_BIGINT[c] 19 (如果已簽署) 或 20 (如果未簽署)
SQL_REAL[c] 7
SQL_FLOAT[c] 15
SQL_DOUBLE[c] 15
所有二進位類型[a],[b] 資料行或參數的已定義或最大長度,以位元組為單位。 例如,定義為 BINARY(10) 的資料行長度為 10。
SQL_TYPE_DATE[c] 10 (yyyy-mm-dd 格式的 字元數)。
SQL_TYPE_TIME[c] 8(hh-mm-ss 格式的字元 數),或 9 + s (hh:mm:ss [.fff...] 格式的 字元數,其中 s 是秒精確度)。
SQL_TYPE_TIMESTAMP 16 (yyyy-mm-dd hh:mm 格式的 字元數)

19 (yyyy-mm-dd hh:mm:ss 格式的字元 數)



20 + s (yyyy-mm-dd hh:mm:ss [.fff...] 格式的字元 數,其中 s 是秒精確度)。
SQL_INTERVAL_SECOND 其中 p 是間隔前置有效位數, 而 s 是秒精確度, p (如果 s =0) 或 p + s+1 (如果 s > 0)。[d]
SQL_INTERVAL_DAY_TO_SECOND 其中 p 是間隔前置有效位數, s 是秒精確度,9+ p (如果 s =0) 或 10+ p + s (如果 s > 0)。[d]
SQL_INTERVAL_HOUR_TO_SECOND 其中 p 是間隔前置有效位數, s 是秒精確度、6+ p (如果 s =0) 或 7+ p + s (如果 s > 0)。[d]
SQL_INTERVAL_MINUTE_TO_SECOND 其中 p 是間隔前置有效位數, s 是秒精確度,3+ p (如果 s =0) 或 4+ p + s (如果 s > 0)。[d]
SQL_INTERVAL_YEAR SQL_INTERVAL_MONTH SQL_INTERVAL_DAY SQL_INTERVAL_HOUR SQL_INTERVAL_MINUTE p,其中 p 是間隔前置精確度。[d]
SQL_INTERVAL_YEAR_TO_MONTH SQL_INTERVAL_DAY_TO_HOUR 3+ p,其中 p 是間隔前置精確度。[d]
SQL_INTERVAL_DAY_TO_MINUTE 6+ p,其中 p 是間隔前置精確度。[d]
SQL_INTERVAL_HOUR_TO_MINUTE 3+ p,其中 p 是間隔前置精確度。[d]
SQL_GUID 36 (aaaaaaaa-bbbb-cccc-dddd-eeeeeeeeeeeeeeeeee 格式的字元 數)

[a] 針對在 ODBC 2.0 驅動程式中呼叫 SQLSetParam 的 ODBC 1.0 應用程式,以及針對 ODBC 1.0 驅動程式中呼叫 SQLBindParameter 的 ODBC 2.0 應用程式,當 * StrLen_or_IndPtr 針對SQL_LONGVARCHAR或SQL_LONGVARBINARY類型SQL_DATA_AT_EXEC時,ColumnSize 必須設定為要傳送之資料的總長度, 不是此資料表中所定義的有效位數。

[b] 如果驅動程式無法判斷變數類型的資料行或參數長度,則會傳回SQL_NO_TOTAL。

[c] 這個資料類型會忽略 SQLBindParameter ColumnSize 引數。

[d] 如需間隔資料類型中資料行長度的一般規則,請參閱 本附錄稍早的間隔資料類型長度

針對資料行 (或參數) 大小傳回的值不會對應至任何一個描述元欄位中的值。 值可能來自SQL_DESC_PRECISION或SQL_DESC_LENGTH欄位,視資料類型而定,如下表所示。

SQL 類型 對應至 的描述項欄位

資料行或參數大小
所有字元和二進位類型 LENGTH
所有數數值型別 PRECISION
所有日期時間和間隔類型 LENGTH
SQL_BIT LENGTH