Array
(
)

atribuir valor retornado de procedure a uma variavel

Tommahawk
   - 21 dez 2004

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?

Mennahe
   - 23 dez 2004

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

Tommahawk
   - 23 dez 2004

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!!!