DB2 v10.5的存储过程执行的社会代码

时间:2016-10-03 12:35:14

标签: stored-procedures db2

我正在尝试通过soci proc.execute() function执行在DB2数据库中创建和编译的存储过程。使用CALL PROC_NAME(?)语法直接在数据库中执行时,该过程正在编译而没有任何错误。该过程有一个参数( CREATE PROCEDURE PROC_NAME(OUT PARAM VARCHAR(10)) )

以下代码引发了错误:

procedure proc = (CONNECTION::sql->prepare<<"PROC_NAME()",into(out_Param)) ;
proc.execute(true) ;
ERROR : Error while detecting column size SQLMESSAGE: [IBM][CLI Driver] CLI0101E The statement did not return a result set. SQLSTATE=07005
But the Procedure Executes Suxxessfully in database.

***db2 => CALL PROC_NAME(?) ;
Value of output parameters
Parameter Name : RETVAL
Parameter Value : SUCCESS
Return Status = 0
db2 =>***

以下代码通过社会工作:

string OUT ;
procedure proc = (CONNECTION::sql->prepare<<"CALL PROC_NAME(:out_Param)", use(OUT,"out_Param")) ;
proc.execute(true) ;

但我无法在代码中打印"out_Param"变量。该值为null。

我尝试过其他方法,比如准备和执行这些语句,但这些方法都不适合我。

我的要求是我想通过DB2数据库中的soci执行该过程,并希望将out参数值从过程复制到宿主变量。

如果还有其他方法可以实现此目的,请告知我们。

0 个答案:

没有答案