2011-07-12 70 views
3

我從我的java類調用商店過程返回給我一個遊標,我從遊標中提取結果集並迭代結果集供我使用,現在我的問題是這樣的Ref遊標和結果集

返回的引用遊標是否擁有其中的所有數據,或者當在遊標上爲結果集調用getObject時,它再次轉到數據庫服務器?

關於

回答

5

Fetch Size是您正在查找的Oracle參數。如果您的應用程序涉及將數據從服務器傳輸到客戶端,則這是非常重要的設置。

您可以使用此方法爲您的語句設置獲取大小。

void setFetchSize(int rows) throws SQLException 

http://download.oracle.com/docs/cd/B28359_01/java.111/b31224/resltset.htm#sthref1000

從上面的鏈接...

默認情況下,當甲骨文JDBC執行查詢時,它接收該結果 組10行同時從數據庫光標。這是默認的 Oracle行預取值。您可以通過更改行預取 值(請參閱「Oracle行預取」瞭解更多信息),更改檢索到的每行 的行數。

當語句對象執行查詢時, 語句對象的提取大小被傳遞給由 查詢生成的結果集對象。但是,您還可以將結果集 對象中的獲取大小設置爲覆蓋傳遞給它的語句獲取大小。

4

通常會在與光標相關聯的客戶端上存在緩衝區。當您詢問第一行時,oracle服務器將爲緩衝區填充遊標的行數據。如果不是所有的行數據都適合緩衝區,則光標上的某個後續調用將從服務器獲取下n行。