2017-09-06 31 views
-1

我想在Java代碼的幫助下創建Oracle光標。我試圖在互聯網上搜索,但我沒有找到任何東西。我們可以使用Java代碼創建Cursor嗎?使用Java程序創建Oracle光標

+0

通過哪個平臺?你想實現什麼? – sagi

+0

我們正試圖優化我們的應用程序的性能。對不起,我沒有得到第一個問題,平臺是否指操作系統? –

+0

https://stackoverflow.com/q/43710288/1509264的副本 – MT0

回答

0

您不能使用Java代碼創建遊標。

遊標是數據庫內部數據結構的引用(指針),代表查詢和相應的一組結果 - 在數據庫之外創建指針將毫無意義。

Oracle Documentation

介紹REF CURSOR小號

使用REF CURSOR s是最強大的,靈活的,可擴展的方式來從Oracle數據庫返回查詢結果到客戶端應用程序之一。

REF CURSOR是一個PL/SQL數據類型,其值是數據庫上查詢工作區的內存地址。實質上,REF CURSOR是數據庫上結果集的指針或句柄。 REF CURSOR通過OracleRefCursor ODP.NET類來表示。

REF CURSOR■找以下特徵:

  • REF CURSOR參照數據庫上的存儲器地址。因此,客戶端必須在REF CURSOR的生存期內連接到數據庫才能訪問它。

  • A REF CURSOR涉及額外的數據庫往返行程。在將REF CURSOR返回給客戶端時,直到客戶端打開REF CURSOR並請求數據時纔會返回實際數據。請注意,直到用戶嘗試讀取數據時纔會檢索數據。

  • A REF CURSOR不可更新。由REF CURSOR表示的結果集是隻讀的。您不能通過使用REF CURSOR來更新數據庫。

  • A REF CURSOR不向後滾動。由REF CURSOR表示的數據是以只進,串行方式訪問的。您不能在REF CURSOR內定位記錄指針,以指向結果集中的隨機記錄。

  • A REF CURSOR是PL/SQL數據類型。您在PL/SQL代碼塊中創建並返回一個REF CURSOR

你需要創建一個返回遊標,然後調用從您的外部應用程序的數據庫存儲過程(或函數)。