Tamanho da coluna

O tamanho da coluna (ou parâmetro) de tipos de dados numéricos é definido como o número máximo de dígitos usados pelo tipo de dados da coluna ou parâmetro, ou a precisão dos dados. Para tipos de caracteres, esse é o comprimento em caracteres dos dados; para tipos de dados binários, o tamanho da coluna é definido como o comprimento em bytes dos dados. Para o tempo, o carimbo de data/hora e todos os tipos de dados de intervalo, esse é o número de caracteres na representação de caracteres desses dados. O tamanho da coluna definido para cada tipo de dados SQL conciso é mostrado na tabela a seguir.

Identificador de tipo SQL Tamanho da coluna
Todos os tipos de caracteres[a],[b] O tamanho de coluna definido ou máximo em caracteres da coluna ou parâmetro (conforme contido no campo descritor SQL_DESC_LENGTH). Por exemplo, o tamanho da coluna de uma coluna de caractere de byte único definida como CHAR(10) é 10.
SQL_DECIMAL SQL_NUMERIC O número definido de dígitos. Por exemplo, a precisão de uma coluna definida como NUMERIC(10,3) é 10.
SQL_BIT[c] 1
SQL_TINYINT[c] 3
SQL_SMALLINT[c] 5
SQL_INTEGER[c] 10
SQL_BIGINT[c] 19 (se assinado) ou 20 (se não assinado)
SQL_REAL[c] 7
SQL_FLOAT[c] 15
SQL_DOUBLE[c] 15
Todos os tipos binários[a],[b] O comprimento definido ou máximo em bytes da coluna ou parâmetro. Por exemplo, o comprimento de uma coluna definida como BINARY(10) é 10.
SQL_TYPE_DATE[c] 10 (o número de caracteres no formato yyyy-mm-dd ).
SQL_TYPE_TIME[c] 8 (o número de caracteres no formato hh-mm-ss ) ou 9 + s (o número de caracteres no formato hh:mm:ss[.fff...], em que s é a precisão de segundos).
SQL_TYPE_TIMESTAMP 16 (o número de caracteres no formato yyyy-mm-dd hh:mm )

19 (o número de caracteres no formato yyyy-mm-ddhh:mm:ss )

ou

20 + s (o número de caracteres no formato yyyy-mm-dd hh:mm:ss[.fff...], em que s é a precisão de segundos).
SQL_INTERVAL_SECOND Onde p é o intervalo de precisão à esquerda e s é a precisão de segundos, p (se s=0) ou p+s+1 (se s>0).[ d]
SQL_INTERVAL_DAY_TO_SECOND Onde p é o intervalo de precisão à esquerda e s é a precisão de segundos, 9+p (se s=0) ou 10+p+s (se s>0).[ d]
SQL_INTERVAL_HOUR_TO_SECOND Onde p é o intervalo de precisão à esquerda e s é a precisão de segundos, 6+p (se s=0) ou 7+p+s (se s>0).[ d]
SQL_INTERVAL_MINUTE_TO_SECOND Onde p é o intervalo de precisão à esquerda e s é a precisão de segundos, 3+p (se s=0) ou 4+p+s (se s>0).[ d]
SQL_INTERVAL_YEAR SQL_INTERVAL_MONTH SQL_INTERVAL_DAY SQL_INTERVAL_HOUR SQL_INTERVAL_MINUTE p, em que p é a precisão à esquerda do intervalo. [d]
SQL_INTERVAL_YEAR_TO_MONTH SQL_INTERVAL_DAY_TO_HOUR 3+p, em que p é a precisão à esquerda do intervalo. [d]
SQL_INTERVAL_DAY_TO_MINUTE 6+p, em que p é a precisão à esquerda do intervalo. [d]
SQL_INTERVAL_HOUR_TO_MINUTE 3+p, em que p é a precisão à esquerda do intervalo. [d]
SQL_GUID 36 (o número de caracteres no formato aaaaaaaaa-bbbb-cccc-dddd-eeeeeeeeeeeeeeeeee )

[a] Para um aplicativo ODBC 1.0 que chama SQLSetParam em um driver ODBC 2.0 e para um aplicativo ODBC 2.0 que chama SQLBindParameter em um driver ODBC 1.0, quando *StrLen_or_IndPtr é SQL_DATA_AT_EXEC para um tipo de SQL_LONGVARCHAR ou SQL_LONGVARBINARY, ColumnSize deve ser definido como o comprimento total dos dados a serem enviados, não a precisão conforme definido nesta tabela.

[b] Se o driver não puder determinar a coluna ou o comprimento do parâmetro de um tipo de variável, ele retornará SQL_NO_TOTAL.

[c] O argumento ColumnSize de SQLBindParameter é ignorado para esse tipo de dados.

[d] Para obter regras gerais sobre o comprimento da coluna em tipos de dados de intervalo, consulte Comprimento do tipo de dados de intervalo, anteriormente neste apêndice.

Os valores retornados para o tamanho da coluna (ou parâmetro) não correspondem aos valores em nenhum campo descritor. Os valores podem vir do campo SQL_DESC_PRECISION ou SQL_DESC_LENGTH, dependendo do tipo de dados, conforme mostrado na tabela a seguir.

Tipo SQL Campo descritor correspondente a

tamanho da coluna ou do parâmetro
Todos os tipos de caracteres e binários LENGTH
Todos os tipos numéricos PRECISION
Todos os tipos de datetime e intervalo LENGTH
SQL_BIT LENGTH