SQLSyntaxErrorException: ORA-00900: недопустимый оператор SQL, выполняющий функцию sql из jdbc

У меня есть ниже код 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 ответ

Я получил решение:

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

"{}" - это то, чего мне не хватало.

Я надеюсь, что это будет кто-то.

Другие вопросы по тегам