用参数调用java中的过程

时间:2016-05-14 23:30:38

标签: java stored-procedures

我在使用CallableStatement时遇到了一个参数,该参数应该改变数据库中的所有工资。

这是程序。比率不在Employee类中。

    create or replace PROCEDURE CHANGE_SALARY
    (ratio DECIMAL) AS
    BEGIN
    Update employee SET salary=round(salary/ratio);
    end;

无法找到如何实施。我需要从“field_getRatio”获得比率并发送到程序以应用所有工资。

    String sql = "{call change_salary(?)}";
    CallableStatement cStmt = dbConnection.prepareCall(sql);
    cStmt.registerOutParameter(1, Types.DECIMAL);
    cStmt.execute();

感谢您的帮助。

编辑:不知道为什么这篇文章被投票赞成但问题已经解决,感谢蒂姆。

1 个答案:

答案 0 :(得分:1)

您误解inout参数。

此:

CallableStatement cStmt = dbConnection.prepareCall(sql);
cStmt.registerOutParameter(1, Types.DECIMAL);
cStmt.execute();

声明你的比率参数是程序的输出,但它不是。

你应该做的事情如下:

CallableStatement cStmt = dbConnection.prepareCall(sql);
cStmt.setObject(1, theRatio, Types.DECIMAL);
cStmt.execute();