Partilhar via


Tamanho da coluna

O tamanho da coluna (ou parâmetro) dos 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 os tipos de dados de hora, 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 aaaa-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...], onde s é a precisão dos segundos).
SQL_TYPE_TIMESTAMP 16 (o número de caracteres no formato AAAA-MM-DD HH:MM )

19 (o número de caracteres no formato AAAA-MM-DD HH:MM:SS )

ou

20 + s (o número de caracteres no formato aaaa-mm-dd hh:mm:ss[.fff...], onde s é a precisão dos segundos).
SQL_INTERVAL_SECOND Onde p é a precisão inicial do intervalo e s é a precisão dos segundos, p (se s = 0) ou p+s + 1 (se s>0). d]
SQL_INTERVAL_DAY_TO_SECOND Onde p é a precisão inicial do intervalo e s é a precisão dos segundos, 9 + p (se s = 0) ou 10 + p+s (se s>0). d]
SQL_INTERVAL_HOUR_TO_SECOND Onde p é a precisão inicial do intervalo e s é a precisão dos segundos, 6+p (se s=0) ou 7+p+s (se s>0).[ d]
SQL_INTERVAL_MINUTE_TO_SECOND Onde p é a precisão do intervalo à esquerda e s é a precisão dos 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, onde p é a precisão principal do intervalo.[ d]
SQL_INTERVAL_YEAR_TO_MONTH SQL_INTERVAL_DAY_TO_HOUR 3+p, onde p é a precisão principal do intervalo.[ d]
SQL_INTERVAL_DAY_TO_MINUTE 6+p, onde p é a precisão principal do intervalo.[ d]
SQL_INTERVAL_HOUR_TO_MINUTE 3+p, onde p é a precisão principal do intervalo.[ d]
SQL_GUID 36 (o número de caracteres no formato aaaaaaaa-bbbb-cccc-dddd-eeeeeeeeeeee )

[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 definida nesta tabela.

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

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

[d] Para 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 de 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 COMPRIMENTO
Todos os tipos numéricos PRECISION
Todos os tipos de data e hora e intervalo COMPRIMENTO
SQL_BIT COMPRIMENTO