原文如下:
通过SQL Linked Server 执行Oracle 存储过程小结
1 举例
我们可以通过下面的方法在SQL Server中通过Linked Server 来执行Oracle 存储过程。
(1) Oracle Package
PACKAGE Test_PACKAGE AS
TYPE t_t is TABLE of VARCHAR2(30)
INDEX BY BINARY_INTEGER;
PROCEDURE Test_procedure1
( p_BATCH_ID IN VARCHAR2,
p_Number IN number,
p_MSG OUT t_t,
p_MSG1 OUT t_t
);
END Test_PACKAGE;
PACKAGE BODY Test_PACKAGE AS
PROCEDURE Test_procedure1
( p_BATCH_ID IN VARCHAR2,
p_Number IN number,
p_MSG OUT t_t,
p_MSG1 OUT t_t
)
AS
BEGIN
p_MSG(1):='c';
p_MSG(2):='b';
p_MSG(3):='a';
p_MSG1(1):='abc';
RETURN;
COMMIT;
EXCEPTION
WHEN OTHERS THEN
ROLLBACK;
END Test_procedure1;
END Test_PACKAGE;
(2) 在SQL Server中通过Linked Server 来执行Oracle 存储过程
declare @BatchID nvarchar (40)
declare @QueryStr nvarchar (1024)
declare @StatusCode nvarchar(100)
declare @
通过SQL Linked Server 执行Oracle 存储过程小结
1 举例
我们可以通过下面的方法在SQL Server中通过Linked Server 来执行Oracle 存储过程。
(1) Oracle Package
PACKAGE Test_PACKAGE AS
TYPE t_t is TABLE of VARCHAR2(30)
INDEX BY BINARY_INTEGER;
PROCEDURE Test_procedure1
( p_BATCH_ID IN VARCHAR2,
p_Number IN number,
p_MSG OUT t_t,
p_MSG1 OUT t_t
);
END Test_PACKAGE;
PACKAGE BODY Test_PACKAGE AS
PROCEDURE Test_procedure1
( p_BATCH_ID IN VARCHAR2,
p_Number IN number,
p_MSG OUT t_t,
p_MSG1 OUT t_t
)
AS
BEGIN
p_MSG(1):='c';
p_MSG(2):='b';
p_MSG(3):='a';
p_MSG1(1):='abc';
RETURN;
COMMIT;
EXCEPTION
WHEN OTHERS THEN
ROLLBACK;
END Test_procedure1;
END Test_PACKAGE;
(2) 在SQL Server中通过Linked Server 来执行Oracle 存储过程
declare @BatchID nvarchar (40)
declare @QueryStr nvarchar (1024)
declare @StatusCode nvarchar(100)
declare @