Akhirnya menemukan beberapa solusi – kunci masalahnya (bagi kami) adalah bahwa secara default RPC dinonaktifkan untuk server yang ditautkan. Parameter untuk Rpc, Rpc Out, dan Use Remote Collation harus disetel ke true. Info lebih lanjut:
Solusi yang Anda gunakan akan bergantung pada persyaratan keluaran prosedur. Contoh pertama mengembalikan nilai output. Contoh kedua tidak ada nilai output yang dikembalikan (data dikumpulkan dalam kueri berikutnya).
Contoh 1
Prosedur T2T_collect_all memiliki dua parameter input (tanggal mulai dan akhir) dan satu parameter output (jumlah baris).
MENYATAKAN @l_i_parameter1 varchar(10)
MENYATAKAN @l_i_parameter2 varchar(10)
MENYATAKAN @l_i_parameter3 varchar(10)
MENYATAKAN @l_i_parameter4 varchar(10)
MENYATAKAN @l_o_parameter1 bilangan bulat
SET @l_i_parameter1 ='2009/10/01'
SET @l_i_parameter2 ='yyyy/mm/dd'
SET @l_i_parameter3 ='2009/12/31'
SET @l_i_parameter4 ='yyyy/mm/dd'
SET @l_o_parameter1 =0
EXECUTE ( 'mulai T2T_collect_all(to_date(?, ?), to_date(?, ?), ? ); end;',
@l_i_parameter1,
@l_i_parameter2,
@l_i_parameter3,
@l_i_parameter4,
@l_o_parameter1 OUTPUT
) DI ORA_DB;
Info Lebih Lanjut:http://blogs.msdn.com/joaquinv/archive/2008/10/23/execute-Oracle-stored-procedure-in-sql-server.aspx
Contoh 2a
Prosedur T2T_collect_allx hanya memiliki dua parameter input (tanggal mulai dan berakhir).
EXECUTE ('mulai T2T_collect_allx (SYSDATE - 40, SYSDATE); akhir;') ORA_DB;
Contoh 2b
SELECT * FROM OPENQUERY(ORA_DB, 'begin T2T_collect_allx (SYSDATE - 40, SYSDATE ); end;')