Hibernate Call Oracle хранимая процедура - PullRequest
0 голосов
/ 16 апреля 2019

Я работаю над службой, которая должна вызывать хранимую процедуру 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

...