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

From: jms <jesus.m.salvo_at_gmail.com>
Date: Wed, 1 Oct 2008 21:45:19 -0700 (PDT)
Message-ID: <467f5d0e-7776-448a-b09e-ab4ea727de6c@t41g2000hsc.googlegroups.com>


On Oct 2, 1:11 am, ddf <orat..._at_msn.com> wrote:
> 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

Hi,

OK ... Never used OCI before, so my question is .... when using OCI a scrollable cursor, the cursor on the result set has to be in the database. Thus, the scrollability of the cursor should also be implemented by the database .. yes / no ?

If yes, I would have assumed that the JDBC OCI driver would have used OCI scrollable cursors, which would in turn use scrollable results native in the Oracle database itself.

However, Oracle has both a JDBC thin driver and a JDBC OCI driver. The first and second links ( both linking to JDBC documentation ) in my OP did not say that only the thin driver is implementing scrollability in the JDBC layer. It seems to be saying that both JDBC drivers ( thin and OCI ) are doing their own scrollability implementation.

John Received on Wed Oct 01 2008 - 23:45:19 CDT

Original text of this message