by Anonymous » 13 May 2025, 02:38
Wenn ein gespeicherter Prozedur mit 1+ Out ref_cursors aufgerufen wird, kann die Zeilen bei GetResultlist () nicht abgerufen. Alternativ kann der Ref_Cursor -Ergebnissatz durch GETOutputParameterValue abgerufen werden. Ref_Cursor. Dies scheint jedoch nicht die Ursache zu sein.
Code: Select all
StoredProcedureQuery storedProcedureQuery = entityManager
.createStoredProcedureQuery("SOME_STORED_PROC")
.registerStoredProcedureParameter(1, Integer.class, ParameterMode.IN)
.registerStoredProcedureParameter(2, Object.class, ParameterMode.REF_CURSOR)
.registerStoredProcedureParameter(3, Object.class, ParameterMode.REF_CURSOR)
.setParameter(1, 123);
storedProcedureQuery.execute();
List firstCursorResultList = storedProcedureQuery.getResultList(); // expected index 2 REF_CURSOR
List secondCursorResultList = storedProcedureQuery.getResultList(); // expected index 3 REF_CURSOR
Dieser Code würde zu einem Fehler führen, in dem die Ergebnisliste bereits geschlossen ist.>
Wenn ein gespeicherter Prozedur mit 1+ Out ref_cursors aufgerufen wird, kann die Zeilen bei GetResultlist () nicht abgerufen. Alternativ kann der Ref_Cursor -Ergebnissatz durch GETOutputParameterValue abgerufen werden. Ref_Cursor. Dies scheint jedoch nicht die Ursache zu sein.[code]StoredProcedureQuery storedProcedureQuery = entityManager
.createStoredProcedureQuery("SOME_STORED_PROC")
.registerStoredProcedureParameter(1, Integer.class, ParameterMode.IN)
.registerStoredProcedureParameter(2, Object.class, ParameterMode.REF_CURSOR)
.registerStoredProcedureParameter(3, Object.class, ParameterMode.REF_CURSOR)
.setParameter(1, 123);
storedProcedureQuery.execute();
List firstCursorResultList = storedProcedureQuery.getResultList(); // expected index 2 REF_CURSOR
List secondCursorResultList = storedProcedureQuery.getResultList(); // expected index 3 REF_CURSOR
[/code]
Dieser Code würde zu einem Fehler führen, in dem die Ergebnisliste bereits geschlossen ist.>