首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >调用存储的MySQL函数

调用存储的MySQL函数
EN

Stack Overflow用户
提问于 2013-06-08 02:49:09
回答 2查看 10.6K关注 0票数 3

我在我的数据库中创建了一个存储函数verifierQteDemandee,它有一个整数参数numBonIn,它返回一个布尔值。

我想在我的java程序中执行这个函数,我用谷歌搜索了一下,我能找到的就是执行一个存储过程,但是我假设执行一个存储函数与执行一个存储过程是一样的,这是我尝试过的代码:

代码语言:javascript
复制
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("");

如果有人知道如何在过程中获得返回值,我将不胜感激。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2013-06-08 02:57:04

试试这个:

代码语言:javascript
复制
CallableStatement cStmt = con.prepareCall("{? = call verifierQteDemandee(?)}");
cStmt.registerOutParameter(1,java.sql.Types.BOOLEAN);
cStmt.setInt(2, 42);
cStmt.execute();
Boolean outputValue = cStmt.getBoolean(1);

上帝啊,上帝啊...!

票数 10
EN

Stack Overflow用户

发布于 2013-06-08 03:01:32

您可以尝试:

代码语言:javascript
复制
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

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/16990976

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档