Oracle
 sql >> Baza danych >  >> RDS >> Oracle

Spring's Stored Procedure - wyniki powracające z procedury są zawsze puste

Problem polega na tym, że sposób wykonywania procedur przechowywanych przez Oracle nie jest zgodny z JDBC. SP firmy Oracle zwracają dane zestawu wyników za pośrednictwem parametrów OUT lub zwracają wartości, które są kursorami i muszą być obsługiwane w specjalny sposób. Oznacza to, że nie możesz używać żadnego z elementów Spring JDBC, które zakładają zgodność z JDBC, musisz zrobić to sam.

W praktyce oznacza to, że musisz użyć JdbcTemplate i CallableStatementCallback , co oznacza o wiele więcej ręcznego kodowania JDBC, niż byś chciał, ale jeszcze nie znalazłem sposobu, aby tego uniknąć.

Na marginesie, raczej podejrzewam, że specyfikacja JDBC została napisana tak, aby była ściśle zgodna ze sposobem działania Sybase (i, przez powiązanie, SQL Server), ponieważ sposób, w jaki procedury składowane są obsługiwane w JDBC, jest wyjątkowo dobre dla tych systemy (i słabe dopasowanie do Oracle).



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. PostgreSQL mysql różnice w wyroczni

  2. Jak zadeklarować wyjątek zdefiniowany przez użytkownika przy użyciu zmiennej wyjątku w bazie danych Oracle

  3. wiersz numer nie wyświetla żadnych wierszy podczas używania między słowem kluczowym

  4. Uruchom szachownicę

  5. Jak wyczyścić pulę połączeń ODP.NET w przypadku błędów połączenia?