分享方式:


資料行大小

數值數據類型的數據行(或參數)大小定義為數據行或參數數據類型所使用的數位數目上限,或數據的有效位數。 針對字元類型,這是數據字元的長度;針對二進位數據類型,數據行大小會定義為數據位元組的長度。 針對時間、時間戳和所有間隔數據類型,這是此數據之字元表示法中的字元數。 下表顯示針對每個精簡 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] 這個數據類型會忽略 SQLBindParameterColumnSize 自變數。

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

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

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

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