Alterar tipo de coluna

PostgreSQL

22/01/2015

Atualmente estou trabalhando em uma empresa que utiliza o banco de dados PostGres 8.2. Porem com a chegada no Windows 8.1, tivemos a necessidade de instalar o banco de dados PostGres 9.3.
Porém, quando executo a query abaixo, me retorna um erro, na linha que esta comentada.
select tbestoquedia.*,
tbcadprodutos_BKP.unidade,
tbcadprodutos_BKP.grupo
from tbestoquedia,
tbcadprodutos_BKP
where data ='2015-01-02'
and tbcadprodutos_BKP.codempresa = '1'
and tbcadprodutos_BKP.grupo = 'COMBUSTIVEL'
and tbcadprodutos_BKP.subgrupo = 'COMBUSTIVEL'
--and tbestoquedia.produto = tbcadprodutos.codfabrica
and tbcadprodutos_BKP.inventario ='SIM'
order by data,tbestoquedia.descricao

Analisando o caso, foi identificado que as colunas (tbestoquedia.produto = tbcadprodutos.codfabrica) são de tipos diferentes, e por este motivo não é possível executar a consulta.

Assim, gostaria de alterar o tipo de uma coluna, com o comando abaixo:
ALTER TABLE TBCADPRODUTOS_BKP alter column codfabrica type character varying(255)
Mas, é me retornado a mensagem de erro:
ERRO: não pode alterar tipo de uma coluna utilizada por uma visão ou regra
DETAIL: regra _RETURN em visão vwficha depende da coluna "codfabrica"
********** Error **********
ERRO: não pode alterar tipo de uma coluna utilizada por uma visão ou regra
SQL state: 0A000
Detail: regra _RETURN em visão vwficha depende da coluna "codfabrica"

Gostaria de saber se algum poderia/saberia, qual comando devo utilizar para alterar o tipo da coluna sem excluir as informações e a coluna e criar novamente?

Desde já agradeço, ajuda!
Vinicius Redorat

Vinicius Redorat

Curtidas 0

Respostas

Ronaldo Lanhellas

Ronaldo Lanhellas

22/01/2015

Porque você não faz simplesmente um cast do tipo da coluna para a comparação ser possível ?

cast(tbestoquedia.produto as integer) = cast(tbcadprodutos.codfabrica as integer)
GOSTEI 0
Ronaldo Lanhellas

Ronaldo Lanhellas

22/01/2015

Porque você não faz simplesmente um cast do tipo da coluna para a comparação ser possível ?

cast(tbestoquedia.produto as integer) = cast(tbcadprodutos.codfabrica as integer)
GOSTEI 0
Vinicius Redorat

Vinicius Redorat

22/01/2015

Bom dia, Ronaldo!
Tudo bem?

Muito obrigado, pela ajuda/orientação!
Após alteração mencionado, a query passou a ser executada com sucesso.

Abraço...
GOSTEI 0
Ronaldo Lanhellas

Ronaldo Lanhellas

22/01/2015

Bom dia, Ronaldo!
Tudo bem?

Muito obrigado, pela ajuda/orientação!
Após alteração mencionado, a query passou a ser executada com sucesso.

Abraço...


Disponha.
GOSTEI 0
POSTAR