Função

11/09/2006

0

Ola, estou com dificuldades com SQL, estou fazendo uma função a onde tem que passar uma lista de código de produtos, mais o Sql server não está listando os produtos, quando e passado mais de um código.
Abaixo um exemplo do meu teste.


DECLARE @te varchar(250)
DECLARE @ta varchar(250)

set @te = ´´´´+ ´ALBTA06225´ + ´´´´+ ´,´ + ´´´´ + ´ALBTA06099V1´ +´´´´
select @te

Aparece: ´ALBTA06225´ , ´ALBTA06099V1´
Está correto.

set @ta = ´select * from produtos where Pro_codnosso in (´+ @te +´)´
select @ta

Aparece: select * from produtos where Pro_codnosso in (´ALBTA06225´ , ‘ALBTA06099V1´ )
Está correto.

select * from produtos where Pro_codnosso in (@te)
não funciona não aparecer os produtos (esses produtos tem na tabela)

Alguém sabe porque isso acontece??? Não deveria funcionar???


Nautam

Nautam

Responder

Posts

11/09/2006

Psergio.p

Caro amigo, tenta assim:

DECLARE @SQL NVARCHAR(200)

SET @SQL = ´SELECT * FROM Produtos WHERE Pro_codnosso IN(´ + @te + ´)´

EXEC sp_executesql @SQL


Observe o resultado, se não der certo poste novamente!


Responder

11/09/2006

Nautam

Mais só que usando a função não aceita o sp_executesql! :roll:


Responder

12/09/2006

Psergio.p

O que acontece?


Responder

12/09/2006

Nautam

Aconteceu esse erro ´Only functions and extended stored procedures can be executed from within a function.´

Agora eu fiz com procedure e tabela temporaria, ficou até mais rápido.
fez o calculo de venda de 10500 produtos em um período de 1ano e meio em 4s.

Obrigado pela ajuda.


Responder

12/09/2006

Psergio.p

Estamos aí para ajudar!
Qualquer problema é só postar!


Responder

Assista grátis a nossa aula inaugural

Assitir aula

Saiba por que programar é uma questão de
sobrevivência e como aprender sem riscos

Assistir agora

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

Aceitar