atribuir valor retornado de procedure a uma variavel

21/12/2004

0

Eu tenho uma trigger, de onde chamo uma stored procedure que me retorna um valor. Quando tento passar esse valor para uma variável, acho que acontece algum erro de conversão de valor, mas não entendo.
O valor retornado pela SP é do tipo varchar, a variável também, o campo da tabela lida pela SP também, todos do mesmo comprimento. A sequencia de fatos:
- faço a SP retornar o valor usando PRINT
- atribuo o valor retornado usando EXEC @variavel = SP_procedure parametro1, parametro2

Coloquei uns prints na trigger para durante a execução enxergar o valor
que está na variável e eles me mostram 0.
Alguma idéia?


Tommahawk

Tommahawk

Responder

Posts

23/12/2004

Mennahe

Primeiro.
Para usar o valor de um SP você deve criar uma variavel de OUTPUT
Não sei se sabia dessa.
Se sabia é facil. declare uma variavel do tipo output para receber o valor retornado pela SP.
Por exemplo:
A Procedure que vou executar retorna tres variaveis.Entao declarei.

declare @var1 VARCHAR(100),
@var2 VARCHAR(100),
@var3 VARCHAR(100)
Exec sp_QuebraTexto ´Marcelo Jose Macedo´, @var1 OUTPUT, @var2 OUTPUT, @var3 OUTPUT
SELECT @var3
Peguei os valores escrevendo OUTPUT na frente das variaveis
Para isso a variavel deve ser declarada dessa forma
DECLARE @var1 OUTPUT


Responder

23/12/2004

Tommahawk

Grato, colega. Vou voltar pra prancheta de desenho e mandar pau neles. Bom fim de 2004 e um 2005 estourando o disco de realizações!!!


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