2012-10-10 61 views
1

我已經谷歌搜索了一下,並在這裏搜索,一直未能找到答案。替代在JDBC或Spring JDBC中使用REF CURSOR?

當PL/SQL中的數據從數據庫返回到Java(使用Spring JDBC)時,是否有使用REF CURSOR的替代方法?

我工作的DBA憎恨REF CURSORS,因爲(他們說)出錯的可能性更大,他們寧願選擇CURSOR或TYPES。

有誰知道這是否可能,如果是這樣,如何?

在此先感謝。

+2

返回一個遊標和一個參考遊標沒有區別 - 對於完全相同的東西,這些是兩個術語。 DBA是否可能反對使用弱類型的「SYS_REFCURSOR」而不是強類型遊標?究竟是什麼樣的「TYPE」,他們建議你回來呢?我們是在討論創建流水線表函數而不是返回遊標的函數嗎?實現並返回整個集合而不是使用遊標?還有別的嗎? –

+0

是的,這可能是事實,他們是弱類型,而不是強類型。感謝您的信息和問題。它給了我足夠的思想,足以讓我回到DBA和Google。 –

回答

3

你的DBA絕對是討厭遊標:他們可能泄漏,構成安全風險,並且語法尷尬嘈雜。流水線(表)函數比光標抽象更好。

流水線函數輸出與普通表/視圖不同。執行stanfard SQL查詢時,Java客戶端將使用相同的JDBC API調用。同樣,對於PL/SQL流水線函數仍然隱藏在SQL查詢中,因此不保證特殊的數據類型。