Fórum Alterar tipo de coluna #508169

22/01/2015

0

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

Responder

Posts

23/01/2015

Ronaldo Lanhellas

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)
Responder

Gostei + 0

23/01/2015

Ronaldo Lanhellas

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)
Responder

Gostei + 0

23/01/2015

Vinicius Redorat

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...
Responder

Gostei + 0

23/01/2015

Ronaldo Lanhellas

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.
Responder

Gostei + 0

Utilizamos cookies para fornecer uma melhor experiência para nossos usuários, consulte nossa política de privacidade.

Aceitar