如何从 C# 调用 DB2 存储过程?
我使用 Linux 版 DB2 9.7。存储过程是用PL/SQL(Oracle的编程语言)实现的,因此,记录集是一个输出参数(SYS_REFCURSOR)。
CREATE OR REPLACE PROCEDURE TEST_CURSOR (
CV_1 OUT SYS_REFCURSOR
) IS
BEGIN
OPEN CV_1 FOR
SELECT 1 COLUMN
FROM DUAL;
END TEST_CURSOR;
我不知道如何在我的 C# 代码中声明此参数。
DB2Parameter parameter = ((DB2Command)command).CreateParameter();
parameter.ParameterName = "cv_1";
parameter.Direction = ParameterDirection.Output;
parameter.DbType = ...
I use DB2 9.7 for Linux. The stored procedure is implemented in PL/SQL (Oracle's programming language), so, the record set is an output parameter (SYS_REFCURSOR).
CREATE OR REPLACE PROCEDURE TEST_CURSOR (
CV_1 OUT SYS_REFCURSOR
) IS
BEGIN
OPEN CV_1 FOR
SELECT 1 COLUMN
FROM DUAL;
END TEST_CURSOR;
I don't know how to declare this parameter in my C# code.
DB2Parameter parameter = ((DB2Command)command).CreateParameter();
parameter.ParameterName = "cv_1";
parameter.Direction = ParameterDirection.Output;
parameter.DbType = ...
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
结果集没有 DB2Type 枚举。在他们的 API 中,执行此操作的方法是使用 DB2Command.ExecuteReader 方法执行命令。您可能必须将 PL/SQL 更改为返回 sys_refcursor 的函数,而不是具有 sys_refcursor 参数的过程。
There is no DB2Type enumeration for result sets. In their API the way you do this is to execute the command with the DB2Command.ExecuteReader method. You may have to change the PL/SQL to a function which returns a sys_refcursor rather than a procedure which has a sys_refcursor parameter.