Array
(
)

Erro: Os tipos de dados varchar e text são incompatíveis no operador add.

Alex Lekao
   - 22 nov 2011

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

Marco Pinheiro
   - 22 nov 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.,

Marco Pinheiro
   - 22 nov 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

Alex Lekao
   - 23 nov 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

Marco Pinheiro
   - 23 nov 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.

Bruno Manguinho
   - 15 dez 2011

Utiliza a conversão:

#Código

set obs = CAST(TESTE ALEX - ESTAVA PENDENTE AS TEXT) + t.obs

Bruno Manguinho
   - 15 dez 2011

Na verdade é o contrario:

#Código

set obs = TESTE ALEX - ESTAVA PENDENTE AS TEXT + cast(t.obs as varchar(8000))

Alex Lekao
   - 15 dez 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