В настоящее время я нахожусь в Sybase ASE 15.7 и записываю хранимую процедуру, которая использует результат другого SP. Я хотел бы назвать это и вставить результат в временную таблицу, поэтому для исходного SP не требуется никаких изменений.Как вставить результирующий набор хранимой процедуры в временную таблицу И получить выходные параметры в Sybase?
Отсносящийся на этот пост: How can I get data from a stored procedure into a temp table?
ответ Якуба, используя прокси-таблицы отлично работает с определением образца SP:
create procedure mydb.mylogin.sp_extractSomething (
@timestamp datetime) as
select column_a, column_b
from sometable
where timestamp = @timestamp
Однако есть один последний кусок отсутствует! Как вы получаете выходные параметры и набор результатов? SP в моем случае определяется как следующее:
create procedure mydb.mylogin.sp_extractSomething
(
@timestamp datetime,
@errcode char(10) output
) as
select @errcode='NOERR'
select column_a, column_b
from sometable
where timestamp = @timestamp
if (@@rowcount = 0)
begin
select @errcode = 'ERR001'
end
Я бы определить и использовать таблицы прокси следующим образом:
--create proxy table
create existing table myproxy_extractSomething (
column_a int not null,
column_b varchar(20) not null,
_timestamp datetime null,
_errcode char(10) null) external procedure at "loopback.mydb.mylogin.sp_extractSomething"
--calling sp
declare @errcode Char
declare @myTimestamp datetime
set @myTimestamp = getdate()
select *
from myproxy_extractSomething
where _timestamp = @myTimestamp
and _errcode = @errcode
select @errcode
В то время как набор результатов может быть возвращен успешно, @errcode
/_errcode
является всегда null. Как определить выходной параметр в таблице прокси?