我有以下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
我错过了什么?
答案 0 :(得分:1)
我得到了解决方案:
CallableStatement cs = conn.prepareCall(" { ? = call insertRating(?,?,?,?) }");
' {}'是我所缺少的。
我希望有人会这样做。