sql >> Databáze >  >> RDS >> Oracle

Spring's Stored Procedure - výsledky vracející se z procedury vždy prázdné

Problém je v tom, že způsob, jakým Oracle provádí uložené procedury, není kompatibilní s JDBC. SP společnosti Oracle vracejí data výsledkové sady prostřednictvím parametrů OUT nebo návratových hodnot, které jsou kurzory, a je třeba s nimi zacházet speciálně. To znamená, že nemůžete používat žádné JDBC od Spring, které předpokládají shodu s JDBC, musíte to udělat sami.

V praxi to znamená, že musíte použít JdbcTemplate a CallableStatementCallback , což znamená mnohem více manuálního kódování JDBC, než byste v ideálním případě chtěli, ale ještě jsem nenašel způsob, jak se tomu vyhnout.

Poněkud stranou, spíše mám podezření, že specifikace JDBC byla napsána tak, aby se co nejvíce shodovala se způsobem provádění věcí Sybase (a ve spojení s SQL Serverem), protože způsob, jakým se zachází s uloženými procedurami v JDBC, je pozoruhodně vhodný pro ty, systémy (a špatně se hodí pro Oracle).



  1. Chyba při vytváření prostorové databáze. CHYBA:nelze načíst knihovnu /usr/pgsql-9.1/lib/rtpostgis-2.0.so

  2. Jak se spouštějí paralelní plány – část 3

  3. 10 důvodů, proč zůstat u MySQL

  4. převést formát geometrie Postgres na WKT