View a markdown version of this page

Exemplos com tipos de caracteres - Amazon Redshift

O Amazon Redshift deixará de oferecer suporte ao uso de UDFs em Python após 30 de junho de 2026. Começaremos a aplicar essa alteração em fases. Consulte mais informações sobre os detalhes do fim da vida útil do Python e as opções de migração na publicação do blog publicada em 30 de junho de 2025.

Exemplos com tipos de caracteres

Instrução CREATE TABLE

A seguinte instrução CREATE TABLE demonstra o uso dos tipos de dados VARCHAR e CHAR:

create table address( address_id integer, address1 varchar(100), address2 varchar(50), district varchar(20), city_name char(20), state char(2), postal_code char(5) );

Os exemplos a seguir usam esta tabela.

Espaços em branco em strings de caracteres de comprimento variável

Como ADDRESS1 é uma coluna VARCHAR, os espaços em branco no segundo endereço inserido são semanticamente insignificantes. Em outras palavras, estes dois endereços inseridos correspondem.

insert into address(address1) values('9516 Magnolia Boulevard'); insert into address(address1) values('9516 Magnolia Boulevard ');
select count(*) from address where address1='9516 Magnolia Boulevard'; count ------- 2 (1 row)

Se a coluna ADDRESS1 fosse uma coluna CHAR e os mesmos valores fossem inseridos, a consulta de CONTAGEM(*) reconheceria as strings de caracteres como as mesmas e retornaria 2.

Resultados da função LENGTH

A função de COMPRIMENTO reconhece espaços em branco em colunas VARCHAR:

select length(address1) from address; length -------- 23 25 (2 rows)

Um valor de Augusta na coluna CITY_NAME, que é uma coluna CHAR, retornaria sempre um comprimento de 7 caracteres, independente de quaisquer espaços em branco na string de entrada.

Valores que excedem o comprimento da coluna

As strings de caracteres não são truncadas para se adequar à largura declarada da coluna:

insert into address(city_name) values('City of South San Francisco'); ERROR: value too long for type character(20)

Uma ação alternativa para esse problema é converter o valor para o tamanho da coluna:

insert into address(city_name) values('City of South San Francisco'::char(20));

Neste caso, os primeiros 20 caracteres da string (City of South San Fr) seriam carregados na coluna.