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

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

问题描述:

我使用DB2 9.7 for Linux。存储过程以PL/SQL(Oracle的编程语言)实现,因此记录集是一个输出参数(SYS_REFCURSOR)。如何从C#调用DB2存储过程?

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

DB2Parameter parameter = ((DB2Command)command).CreateParameter(); 

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

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

+0

我试过这个,但我不知道如何从C#调用函数。我有这个错误: DB2:ERROR [42884] [IBM] [DB2/LINUXX8664] SQL0440N找不到具有兼容参数的“PROCEDURE”类型的名为“FUN_TEST”的授权例程。 SQLSTATE = 42884 – Jorge 2010-07-13 15:17:36

+0

函数返回一个值,并用关键字'FUNCTION'而不是'PROCEDURE'声明。查看您获得更多信息的PL/SQL文档。 – 2010-07-14 16:15:10