【发布时间】:2016-11-28 20:27:50
【问题描述】:
通过从 Oracle (11g) 到 MS-SQL Server (2012) 的 ODBC 数据库链接,我们尝试调用返回整数的函数/过程。 SQL-Server 过程名为 spProcTest2,有 2 个参数。此过程返回一个用作错误代码的整数。 代码示例见下文。
问题是如何接收过程返回的值?
注意:下面代码中使用的值“nr”仅返回受影响的行数。
declare
c INTEGER;
nr INTEGER;
v_sql VARCHAR2(1000);
SOUT VARCHAR2(100);
BEGIN
v_sql :='EXEC dbo.spProcTest2 ?, ?;';
c := DBMS_HS_PASSTHROUGH.OPEN_CURSOR@gtlab;
DBMS_HS_PASSTHROUGH.PARSE@gtlab(c, v_sql );
DBMS_HS_PASSTHROUGH.BIND_VARIABLE@gtlab (c, 1 , 1);
DBMS_HS_PASSTHROUGH.BIND_VARIABLE@gtlab (c, 2 , 5);
nr := DBMS_HS_PASSTHROUGH.EXECUTE_NON_QUERY@gtlab(c);
DBMS_OUTPUT.PUT_LINE('nr=' || nr) ;
DBMS_HS_PASSTHROUGH.CLOSE_CURSOR@gtlab(c);
commit;
END;
【问题讨论】:
标签: sql-server oracle stored-procedures odbc procedure