我在我的数据库中创建了一个存储函数verifierQteDemandee,它有一个整数参数numBonIn,它返回一个布尔值。
我想在我的java程序中执行这个函数,我用谷歌搜索了一下,我能找到的就是执行一个存储过程,但是我假设执行一个存储函数与执行一个存储过程是一样的,这是我尝试过的代码:
CallableStatement cStmt = con.prepareCall("{call verifierQteDemandee(?)}");
cStmt.setInt("numBonIn", 42);
boolean hadResults = cStmt.execute();
if (hadResults) {
ResultSet rs = cStmt.getResultSet();
}
Boolean outputValue = cStmt.getBoolean(outputValue);;con变量是Connection的一个实例。
正如您在我的代码中所注意到的,我不知道如何从下面这行存储的函数中获取返回值:int outputValue = cStmt.getInt("");。
如果有人知道如何在过程中获得返回值,我将不胜感激。
发布于 2013-06-08 02:57:04
试试这个:
CallableStatement cStmt = con.prepareCall("{? = call verifierQteDemandee(?)}");
cStmt.registerOutParameter(1,java.sql.Types.BOOLEAN);
cStmt.setInt(2, 42);
cStmt.execute();
Boolean outputValue = cStmt.getBoolean(1);上帝啊,上帝啊...!
发布于 2013-06-08 03:01:32
您可以尝试:
CallableStatement cstmt = con.prepareCall("{call verifierQteDemandee(?)}");
cstmt.registerOutParameter(1,Type.Boolean);
cstmt.setInt("numBonIn", 42);
cstmt.execute();
bool outputValue = cstmt.getBoolean(1);顺便说一句,我不希望从sql函数中获得结果集!我希望从我的sql函数输出一个标量值
有关函数和存储过程的完整比较,请参阅Function vs. Stored Procedure in SQL Server
https://stackoverflow.com/questions/16990976
复制相似问题