Хранимая процедура с параметрами / переменными - как получить результат от выполнения процедуры? - PullRequest
2 голосов
/ 19 июня 2011

Вопрос о хранимой процедуре:
Как извлечь значение переменной из хранимой процедуры, объявленной как выходная переменная.Выполнение процедуры как:

EXEC pn_investment_type_eqt {args}

Здесь хранится процедура:

create proc pn_investment_type_eqt
(
 @product_type varchar(10),
 @country varchar(10),
 @fi_treatment varchar(1)= '',
 @investment_type varchar(10) output,
 @investment_description varchar(50) output
)
as
 set nocount on

if @country <> 'US'
   select @country = 'FOREIGN'

if ( @fi_treatment not in ('Y','N') )
   select @fi_treatment = 'N'

if not exists(select 1 from d_investment_type_eqt
              where product_type = @product_type and isNull(country,'') = isNull(@country,'') and fi_treatment = @fi_treatment and row_status='A' )
begin
  select @country = 'ANY'
end

if exists ( select 1 from d_investment_type_eqt
            where product_type = @product_type and isNull(country,'') = isNull(@country,'') and fi_treatment = @fi_treatment and row_status='A' )
begin
   select @investment_type= investment_type , @investment_description = description
   from d_investment_type_eqt
   where product_type = @product_type and isNull(country,'') = isNull(@country,'') and fi_treatment = @fi_treatment and row_status='A'

end
 else
   return (-1)

Мне нужно получить значения @investment_type & @ investment_description.

Я не могу изменить процедуру.

Я использую пользовательскую реализацию jdbcTemplate Spring 2.0 (sql, mapper, args)

DB - это Sybase

Как я могу получить результаты этой хранимой процедуры?

Ответы [ 2 ]

2 голосов
/ 19 июня 2011

Взгляните на этот sybase-in-and-out-параметры пост, возможно, он поможет вам в дальнейшем.

0 голосов
/ 19 июня 2011

Я решил использовать следующий дизайн :

declare @investment_type_value varchar(10)
declare @investment_description_value varchar(50)
SET @investment_type_value = '3041'

EXEC global..pn_investment_type_eqt 'CVPFDST', 'US', 'N', @investment_type = @investment_type_value output , @investment_description = @investment_description_value OUTPUT
select  investment_type = @investment_type_value, investment_description = @investment_description_value
GO

Это дает мне возможность получить значения переменных.

...