SQLSyntaxErrorException:ORA-00900:从jdbc

时间:2018-02-04 03:18:08

标签: oracle jdbc sql-function

我有以下java代码:

void insertRatings(String Rname , String uName ,BigDecimal rating , String rDate) throws SQLException, ParseException
    {
        CallableStatement cs = conn.prepareCall("? = call insertRating(?,?,?,?) ");

        cs.registerOutParameter(1, Types.INTEGER);
        cs.setString(2, Rname);
        cs.setString(3, uName);
        cs.setBigDecimal(4, rating);
        cs.setDate(5,new Date(new SimpleDateFormat("dd/MM/yyyy").parse(rDate).getTime()));


        cs.executeQuery();

        System.out.println("Output recived from fucntion :: "+cs.getInt(1));

    }

SQL函数是:

create or replace function insertRating(Rname varchar2(100),uName varchar2(100),rating Number,
rDate Date) return Integer is

SQL函数按预期工作。但是,当我运行java代码时,我得到cs.executeQuery();

的以下错误
Exception in thread "main" java.sql.SQLSyntaxErrorException: ORA-00900: invalid SQL statement

我错过了什么?

1 个答案:

答案 0 :(得分:1)

我得到了解决方案:

CallableStatement cs = conn.prepareCall(" { ? = call insertRating(?,?,?,?) }");

' {}'是我所缺少的。

我希望有人会这样做。