如何从C#调用DB2存储过程?

时间:2010-06-24 21:17:20

标签: c# stored-procedures plsql db2 sys-refcursor

我使用DB2 9.7 for Linux。存储过程在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 = ...

1 个答案:

答案 0 :(得分:1)

结果集没有DB2Type枚举。在他们的API中,执行此操作的方法是使用DB2Command.ExecuteReader方法执行该命令。您可能必须将PL / SQL更改为返回sys_refcursor的函数,而不是具有sys_refcursor参数的过程。