Я работаю над службой, которая должна вызывать хранимую процедуру Oracle для обновления некоторых записей.Процедура не имеет возвращаемого значения.
Я использую Spring Boot v2.1.3 и Hibernate 5.3.6.
Я пытаюсь вызвать процедуру следующим образом:
Object updatePaymentStatus(Integer cropYear, Integer weightTagNumber) throws Exception {
return em.createNativeQuery("CALL GMSAPPL.GMS_INTERFACE_JDE_PKG.UPDATEPAYMENTSTATUSBYWTNUMBER(:weightTagNumber, :cropYear)")
.setParameter("weightTagNumber", weightTagNumber)
.setParameter("cropYear", cropYear)
.getResultList();
Но когда я выполняювот, я получаю SQLSyntaxErrorException: ORA-00900: invalid SQL statement
Может кто-нибудь объяснить, почему Hibernate считает, что это недопустимый оператор SQL?Это именно то, как я бы назвал это из Oracle, и я выполняю собственный запрос.
Я тоже пробовал это так:
try(Connection conn = DriverManager.getConnection(url, "username", "password")) {
System.out.println("Connected to database");
CallableStatement cstmt = conn.prepareCall("{CALL GMSAPPL.GMS_INTERFACE_JDE_PKG.UPDATEPAYMENTSTATUSBYWTNUMBER(?, ?)}");
cstmt.setInt(1, weightTagNumber);
cstmt.setInt(2, cropYear);
return cstmt.execute();
}
И я получаю: SQLException: ORA-01403: no data found\nORA-06512: at \"GMSAPPL.GMS_INTERFACE_JDE_PKG\", line 359\nORA-06512: at line 1\n