Masalahnya di sini adalah bahwa cara Oracle melakukan prosedur tersimpan tidak sesuai dengan JDBC. SP Oracle mengembalikan data hasil melalui parameter OUT atau mengembalikan nilai yang berupa kursor, dan harus ditangani secara khusus. Ini berarti Anda tidak dapat menggunakan barang JDBC Spring apa pun yang mengasumsikan kepatuhan dengan JDBC, Anda harus melakukannya sendiri.
Dalam praktiknya, ini berarti Anda harus menggunakan JdbcTemplate
dan CallableStatementCallback
, yang berarti lebih banyak pengkodean JDBC manual daripada yang Anda inginkan, tetapi saya belum menemukan cara untuk menghindarinya.
Di samping sedikit, saya agak curiga bahwa spesifikasi JDBC ditulis agar sesuai dengan cara Sybase (dan, dengan asosiasi, SQL Server) dalam melakukan sesuatu, karena cara prosedur tersimpan ditangani di JDBC sangat cocok untuk itu. sistem (dan kurang cocok untuk Oracle).