Erro: Os tipos de dados varchar e text são incompatíveis no operador add.
Ola Estou rodando o seguinte script e esta retornando erro.
SCRIPT:
update TITULOS set obs=(TESTE ALEX - ESTAVA PENDENTE)+t.obs
from TITULOS t,REQVDA r
where (t.sid=r.sid)
and LEN(r.numfat)=7 and r.tiporeq=vd
and t.stafin<>F
and r.numfat in(select fv.numfat from REQVDA fv where LEN(fv.numfat)=7 and fv.tiporeq=fv)
ERRO:
Mensagem 402, Nível 16, Estado 1, Linha 12
Os tipos de dados varchar e text são incompatíveis no operador add.
Alguem poderia me dar uma forca?
Abraco.
Alex - Lekao
SCRIPT:
update TITULOS set obs=(TESTE ALEX - ESTAVA PENDENTE)+t.obs
from TITULOS t,REQVDA r
where (t.sid=r.sid)
and LEN(r.numfat)=7 and r.tiporeq=vd
and t.stafin<>F
and r.numfat in(select fv.numfat from REQVDA fv where LEN(fv.numfat)=7 and fv.tiporeq=fv)
ERRO:
Mensagem 402, Nível 16, Estado 1, Linha 12
Os tipos de dados varchar e text são incompatíveis no operador add.
Alguem poderia me dar uma forca?
Abraco.
Alex - Lekao
Alex Lekao
Curtidas 0
Respostas
Marco Pinheiro
22/11/2011
Pelo que está na consulta talvez um dos campos que estão sendo relacionados são de tipos diferentes.
O campo OBS da tabela TITULOS é do tipo TEXT?
Outra dúvida: O comando (TESTE ALEX - ESTAVA PENDENTE), não deveria estar em aspas?
Att.,
O campo OBS da tabela TITULOS é do tipo TEXT?
Outra dúvida: O comando (TESTE ALEX - ESTAVA PENDENTE), não deveria estar em aspas?
Att.,
GOSTEI 0
Marco Pinheiro
22/11/2011
Provavelmente seu campo é TEXT. Neste caso tem que usar outro comando. Segue exemplo:
ALTER DATABASE pubs
SET RECOVERY SIMPLE;
GO
DECLARE @ptrval binary(16)
SELECT @ptrval = TEXTPTR(pr_info)
FROM pub_info pr, publishers p
WHERE p.pub_id = pr.pub_id AND p.pub_name = New Moon BooksUPDATETEXT pub_info.pr_info @ptrval 88 1 b;
GO
ALTER DATABASE pubs SET RECOVERY FULL;
GO
ALTER DATABASE pubs
SET RECOVERY SIMPLE;
GO
DECLARE @ptrval binary(16)
SELECT @ptrval = TEXTPTR(pr_info)
FROM pub_info pr, publishers p
WHERE p.pub_id = pr.pub_id AND p.pub_name = New Moon BooksUPDATETEXT pub_info.pr_info @ptrval 88 1 b;
GO
ALTER DATABASE pubs SET RECOVERY FULL;
GO
GOSTEI 0
Alex Lekao
22/11/2011
Ola Marco, bom dia!!
Obrigado pela ajuda.
Sim de fato o campo obs eh text.
As aspas acabei esquecendo de colocar qdo estava transcrevendo o script.
Desculpe, mas sou meio que iniciante no sql e nao entendi muito bem o seu exemplo.
Mesmo assim, muito obrigado.
Abraco.
Alex - Lekao
Obrigado pela ajuda.
Sim de fato o campo obs eh text.
As aspas acabei esquecendo de colocar qdo estava transcrevendo o script.
Desculpe, mas sou meio que iniciante no sql e nao entendi muito bem o seu exemplo.
Mesmo assim, muito obrigado.
Abraco.
Alex - Lekao
GOSTEI 0
Marco Pinheiro
22/11/2011
Alex,
Postei apenas um exemplo, mas procure por UPDATETEXT na net que terão vários exemplos a respeito.
Se ainda não conseguir resolver sua dúvida informe-nos.
Att.,
Marco.
Postei apenas um exemplo, mas procure por UPDATETEXT na net que terão vários exemplos a respeito.
Se ainda não conseguir resolver sua dúvida informe-nos.
Att.,
Marco.
GOSTEI 0
Bruno Manguinho
22/11/2011
Utiliza a conversão:
set obs = CAST(TESTE ALEX - ESTAVA PENDENTE AS TEXT) + t.obs
GOSTEI 0
Bruno Manguinho
22/11/2011
Na verdade é o contrario:
set obs = TESTE ALEX - ESTAVA PENDENTE AS TEXT + cast(t.obs as varchar(8000))
GOSTEI 0
Alex Lekao
22/11/2011
Ola Bruno.
Muito obrigado!!!
Acabei utilizando outro campo para gravar essas informacoes.
Mas utilizarei essa sua dica para outros momentos, mantenho uma especie de base de dados com scripts e dicas para usar no sql.
Mais uma vez obrigado!!!
Alex - Lekao
Muito obrigado!!!
Acabei utilizando outro campo para gravar essas informacoes.
Mas utilizarei essa sua dica para outros momentos, mantenho uma especie de base de dados com scripts e dicas para usar no sql.
Mais uma vez obrigado!!!
Alex - Lekao
GOSTEI 0