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

Spring's Stored Procedure - i risultati che ritornano dalla procedura sono sempre vuoti

Il problema qui è che il modo in cui Oracle esegue le procedure memorizzate non è conforme a JDBC. Gli SP di Oracle restituiscono i dati del set di risultati tramite parametri OUT o restituiscono valori che sono cursori e devono essere gestiti in modo speciale. Ciò significa che non puoi utilizzare nessuna delle cose JDBC di Spring che presuppongono la conformità con JDBC, devi farlo da solo.

In pratica, questo significa che devi usare JdbcTemplate e CallableStatementCallback , il che significa molta più codifica JDBC manuale di quella che vorresti idealmente, ma devo ancora trovare un modo per evitarlo.

Da un lato, sospetto piuttosto che le specifiche JDBC siano state scritte per conformarsi strettamente al modo di fare le cose Sybase (e, per associazione, SQL Server), perché il modo in cui le procedure memorizzate vengono gestite in JDBC è particolarmente adatto per quelli sistemi (e non adatto a Oracle).