0

SQL Server ストアド プロシージャ:

CREATE PROC proc1
AS
SELECT ename FROM employee

Oracle サーバーのストアド プロシージャ:

CREATE OR REPLACE PROCEDURE proc1
(
cv_1 IN OUT SYS_REFCURSOR
)
AS
BEGIN
OPEN cv_1 FOR
SELECT ename
FROM employee ;
END;

サポートされているデータ型が同じで、同じ数のパラメータを使用して、Oracle と SQL Server の両方でこの手順を記述することは可能ですか?

可能であればどのように?OracleとSQL Serverの両方から呼び出す方法は?

4

1 に答える 1

0

私たちは常にこれを行っており、うまく機能していますが、私たちのシステムはODBCの「呼び出し」構文を使用してプロシージャを呼び出すODBCに基づいています。この機能は、Oracle 10 頃に Oracle ドライバーに追加されたと思います。

例えば:

{CALL proc1} または proc1 に非参照カーソル パラメータがある場合 {CALL proc1(parm1,parm2,parm3)}

Oracle ドライバーは、ref カーソルを結果セットに変換するために必要なことを自動的に行います。結果セットを返す同じコードを持つことができる以外の通常の入力パラメーターの後にカーソルパラメーターを最後に配置する必要があるという順序の依存関係がある/あったと思います(SQL間でプロシージャを呼び出すためにまったく同じクエリ文字列を使用します)サーバーとオラクル)

于 2013-04-22T22:52:37.757 に答える