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

如何从C#调用DB2存储过程?,c#,stored-procedures,plsql,db2,sys-refcursor,C#,Stored Procedures,Plsql,Db2,Sys Refcursor,我使用DB29.7 for Linux。存储过程是用PL/SQL(Oracle的编程语言)实现的,因此,记录集是一个输出参数(SYS_REFCURSOR) 我不知道如何在我的C代码中声明这个参数 结果集没有DB2Type枚举。在他们的API中,这样做的方式是使用DB2Command.ExecuteReader方法执行命令。您可能必须将PL/SQL更改为返回sys\u refcursor的函数,而不是具有sys\u refcursor参数的过程。结果集没有DB2Type枚举。在他们的API中,这样

我使用DB29.7 for Linux。存储过程是用PL/SQL(Oracle的编程语言)实现的,因此,记录集是一个输出参数(SYS_REFCURSOR)

我不知道如何在我的C代码中声明这个参数


结果集没有DB2Type枚举。在他们的API中,这样做的方式是使用DB2Command.ExecuteReader方法执行命令。您可能必须将PL/SQL更改为返回sys\u refcursor的函数,而不是具有sys\u refcursor参数的过程。

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

我已经尝试过了,但我不知道如何从C调用函数。我发现了这个错误:DB2:error[42884][IBM][DB2/LINUXX8664]SQL0440N未找到具有兼容参数的“PROCEDURE”类型的名为“FUN_TEST”的授权例程。SQLSTATE=42884A函数返回一个值,并用关键字“function”而不是“PROCEDURE”声明。查看您手头的PL/SQL文档以了解更多信息。我已经尝试过这个方法,但我不知道如何从C#调用函数。我发现了这个错误:DB2:error[42884][IBM][DB2/LINUXX8664]SQL0440N未找到具有兼容参数的“PROCEDURE”类型的名为“FUN_TEST”的授权例程。SQLSTATE=42884A函数返回一个值,并用关键字“function”而不是“PROCEDURE”声明。查看手边的PL/SQL文档以了解更多信息。
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;
DB2Parameter parameter = ((DB2Command)command).CreateParameter();

parameter.ParameterName = "cv_1";
parameter.Direction = ParameterDirection.Output;
parameter.DbType = ...