資料行大小
數值資料類型的資料行(或參數)大小定義為數據行或參數資料類型所使用的數位數目上限,或資料的有效位數。 針對字元類型,這是資料字元的長度;針對二進位資料類型,資料行大小會定義為數據位元組的長度。 針對時間、時間戳記和所有間隔資料類型,這是此資料之字元標記法中的字元數。 下表顯示針對每個精簡 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 |
意見反應
https://aka.ms/ContentUserFeedback。
即將登場:在 2024 年,我們將逐步淘汰 GitHub 問題作為內容的意見反應機制,並將它取代為新的意見反應系統。 如需詳細資訊,請參閱:提交並檢視相關的意見反應