Re: Oracle10g/11g, scrollable cursors, and JDBC scrollable result

From: ddf <oratune_at_msn.com>
Date: Wed, 1 Oct 2008 08:11:43 -0700 (PDT)
Message-ID: <5fcb4790-76a1-405a-a132-19ef2d5e04df@x35g2000hsb.googlegroups.com>


Comments embedded.

On Sep 30, 6:51 pm, jms <jesus.m.sa..._at_gmail.com> wrote:
> According to the following documents from Oracle's JDBC drivers for
> 10g and 11g:
>
> http://download.oracle.com/docs/cd/B19306_01/java.102/b14355/resltset...
>
> http://download.oracle.com/docs/cd/B28359_01/java.111/b31224/resltset...
>
> To quote:
>
> "Oracle JDBC Implementation for Result Set Scrollability
>
> Because the underlying server does not support scrollable cursors,
> Oracle JDBC must implement scrollability in a separate layer.
>
> It is important to be aware that this is accomplished by using a
> client-side memory cache to store rows of a scrollable result set.
>
> Important:
> Because all rows of any scrollable result set are stored in the client-
> side cache, a situation where the result set contains many rows, many
> columns, or very large columns might cause the client-side Java
> virtual machine (JVM) to fail. Do not specify scrollability for a
> large result set."
>
> But Oracle's own documentation for the database server itself says
> that it does support scrollable cursors:
>
> http://download.oracle.com/docs/cd/B19306_01/server.102/b14220/sqlpls...
>
> So the question is ... what does Oracle's JDBC thin driver actually
> do ??

Implements JDBC 2.0 result set functionality.

> Does it use a scrollable cursor or not ?

It does what the documentation which you posted states:

"Because the underlying server does not support scrollable cursors, Oracle JDBC must implement scrollability in a separate layer.

It is important to be aware that this is accomplished by using a client-side memory cache to store rows of a scrollable result set."

The links to the java implementation provide examples of java-style scrollable cursors. The commands to manipulate those differ greatly from those available in OCI/OCCI.

> If not, which one does ?

The scrollable cursors you refer to, mentioned in the last link provided by your post, are an OCI/OCCI implementation, which is an entirely different programming interface. Visit that link again and you'll see, down the page, an example of an OCI scrollable cursor.

>
> John

David Fitzjarrell Received on Wed Oct 01 2008 - 10:11:43 CDT

Original text of this message