sql >> Database teknologi >  >> RDS >> Oracle

Spring's Stored Procedure - resultater, der kommer tilbage fra proceduren, er altid tomme

Problemet her er, at Oracles måde at lave lagrede procedurer på ikke er JDBC-kompatibel. Oracles SP'er returnerer resultatsætdata via OUT-parametre eller returnerer værdier, der er markører, og de skal håndteres specielt. Det betyder, at du ikke kan bruge nogen af ​​Springs JDBC-ting, der forudsætter overholdelse af JDBC, du skal gøre det selv.

I praksis betyder det, at du skal bruge JdbcTemplate og CallableStatementCallback , hvilket betyder meget mere manuel JDBC-kodning, end du ideelt set ønsker, men jeg har endnu ikke fundet en måde at undgå dette på.

På en lille side, så formoder jeg snarere, at JDBC-specifikationen er skrevet for at passe tæt til Sybase (og, ved tilknytning, SQL Server) måden at gøre tingene på, fordi den måde, lagrede procedurer håndteres på i JDBC, passer bemærkelsesværdigt godt til dem. systemer (og passer dårligt til Oracles).



  1. Alibaba Cloud

  2. Tilbage fra Open World 2013

  3. Django cache.set() forårsager duplikatnøglefejl

  4. Massesaml ind og udfør øjeblikkeligt i Oracle