sergio santos escreveu:
> Olá pessoal
> Toda vez que crio um campo em uma tabela do tipo "character varying" e 
> no futuro, quando preciso mudar o tipo do campo para integer, o 
> PostgreSQL me retorna a seguinte mensagem:
> 
> "
> 
> *Erro de SQL:*
> 
> ERRO:  coluna "x" não pode ser convertida para tipo "pg_catalog.int4"
> 
> *Indicação de entrada :*
> ALTER TABLE teste ALTER COLUMN x TYPE integer
> 
> "
> ps. é claro que todos os dados do campo são integer
> 


Veja a cláusula "USING expression".

bdteste=# CREATE TEMP TABLE foo(x varchar);
CREATE TABLE
bdteste=# INSERT INTO foo VALUES ('11'), ('222'), ('333');
INSERT 0 3
bdteste=# SELECT * FROM foo;
   x
-----
  11
  222
  333
(3 registros)

bdteste=# ALTER TABLE foo ALTER COLUMN x TYPE INT4;
ERRO:  coluna "x" não pode ser convertida para tipo "int4"

bdteste=# ALTER TABLE foo ALTER COLUMN x TYPE INT4 USING x::int;
ALTER TABLE
bdteste=# \d foo
       Tabela "pg_temp_1.foo"
  Coluna |  Tipo   | Modificadores
--------+---------+---------------
  x      | integer |

bdteste=# SELECT * FROM foo;
   x
-----
   11
  222
  333
(3 registros)

Osvaldo
_______________________________________________
pgbr-geral mailing list
[email protected]
https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral

Responder a