Re: cursor "jdbc_curs_1" does not exist

From: Kris Jurka <books(at)ejurka(dot)com>
To: tmp(at)nitwit(dot)de
Cc: pgsql-jdbc(at)postgresql(dot)org
Subject: Re: cursor "jdbc_curs_1" does not exist
Date: 2004-06-15 16:06:26
Message-ID: Pine.BSO.4.56.0406151102540.13010@leary.csoft.net
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-jdbc

On Tue, 15 Jun 2004 tmp(at)nitwit(dot)de wrote:

> Hi!
>
> org.postgresql.util.PSQLException: ERROR: cursor "jdbc_curs_1" does not exist
>
> Can somebody explain this exception? What I do is pretty simple: I read text
> from one table, gzip it and insert it into another table. But it seems that
> the exception is thrown at ResulSet.next() but I'm not sure. Here's the code
> anyway:

The problem here is that you commit every 100 rows. A commit closes any
open cursors, so the next time you try to call next the cursor isn't there
any more.

Kris Jurka

>
>
> final PreparedStatement select = f4t.prepareStatement( "SELECT urlid, html
> FROM html" );
> final PreparedStatement insert = f4t.prepareStatement( "INSERT INTO
> legacy.zhtml (id, zhtml) VALUES (?, ?)" );
>
> f4t.setAutoCommit( false );
>
> select.setFetchSize( FETCH_SIZE );
>
> int i = 0;
> for( ResultSet row = select.executeQuery(); row.next(); )
> {
> final String id = row.getString( "urlid" );
> final String html = row.getString( "html" );
>
> final ByteArrayOutputStream bos = new ByteArrayOutputStream();
> final DataOutputStream dos = new DataOutputStream( bos );
>
> WritableUtils.writeCompressedString( dos, html );
>
> insert.setString( 1, id );
> insert.setBytes( 2, bos.toByteArray() );
> insert.execute();
>
> System.out.print( '.' );
>
> if( ++i % 100 == 0 )
> {
> System.out.println();
> f4t.commit();
> }
> }
>
> f4t.commit();
> f4t.setAutoCommit( true );
>
>
>
> ---------------------------(end of broadcast)---------------------------
> TIP 8: explain analyze is your friend
>

In response to

Responses

Browse pgsql-jdbc by date

  From Date Subject
Next Message Jie Liang 2004-06-15 16:44:03 Re: [SQL] Prepare Statement
Previous Message tmp 2004-06-15 15:36:26 cursor "jdbc_curs_1" does not exist