参考光标和结果集
Posted
技术标签:
【中文标题】参考光标和结果集【英文标题】:Ref Cursor and Resultset 【发布时间】:2011-07-12 18:41:23 【问题描述】:我正在从我的 java 类中调用一个存储过程,它返回一个 ref 游标,我正在从游标中提取结果集并迭代结果集以供我使用,现在我的问题是这个
返回的 ref 游标是包含所有数据还是在游标上调用 getObject 以获取结果集时再次进入数据库服务器?
问候
【问题讨论】:
【参考方案1】:Fetch Size 是您要查找的 Oracle 参数。如果您的应用程序涉及将数据从服务器传输到客户端,这是一个非常重要的设置。
您可以使用此方法为您的语句设置提取大小。
void setFetchSize(int rows) throws SQLException
http://download.oracle.com/docs/cd/B28359_01/java.111/b31224/resltset.htm#sthref1000
从上面的链接...
默认情况下,Oracle JDBC 执行查询时,会收到结果 从数据库游标一次设置 10 行。这是默认设置 Oracle 行预取值。您可以更改检索到的行数 通过更改行预取每次访问数据库游标 值(有关详细信息,请参阅“Oracle 行预取”)。
当语句对象执行查询时,获取的大小 语句对象被传递给生成的结果集对象 询问。但是,您也可以在结果集中设置提取大小 对象来覆盖传递给它的语句获取大小。
【讨论】:
【参考方案2】:通常在客户端上会有一个与游标关联的缓冲区。当您请求第一行时,oracle 服务器将用游标的行数据填充缓冲区。如果不是所有的行数据都适合缓冲区,则对游标的一些后续调用将从服务器获取接下来的 n 行。
【讨论】:
以上是关于参考光标和结果集的主要内容,如果未能解决你的问题,请参考以下文章