This isn't true any more, the backend supports with hold now, so you can
declare a cursor outside a transaction
Dave
On Thu, 2003-07-17 at 13:25, Dmitry Tkach wrote:
> Felipe Schnack wrote:
>
> > but I said I can't understand it when autocommit is off, not when it's on...
> >
> autocommit is off == you are in transaction.
>
> You must be in transaction to be able to declare a cursor.
>
> Dima
>
> >
> >On Thu, 17 Jul 2003 13:16:15 -0400
> >Dmitry Tkach <dmitry@openratings.com> wrote:
> >
> >
> >
> >>Felipe Schnack wrote:
> >>
> >>
> >>
> >>> Seems to me like a quite good solution! But why this is needed when autocommit is off? I can't understand.
> >>>
> >>>
> >>>
> >>>
> >>Because you can only have cursors declared inside a transaction :-(
> >>
> >>Dima
> >>
> >>
> >>
> >>>On Thu, 17 Jul 2003 13:01:43 -0400
> >>>Dmitry Tkach <dmitry@openratings.com> wrote:
> >>>
> >>>
> >>>
> >>>
> >>>
> >>>>Rich Cullingford wrote:
> >>>>
> >>>>
> >>>>
> >>>>
> >>>>
> >>>>>All,
> >>>>>Will this function be implemented in Release 7.4? I have several arge
> >>>>>tables that run Java out of memory when I attempt to load them through
> >>>>>JDBC. Any workarounds arppreciated...
> >>>>>
> >>>>>
> >>>>>
> >>>>>
> >>>>I was using cursors for a while as a workaround...
> >>>>Something like this:
> >>>>
> >>>>c.setAutocommit (false);
> >>>>Statement s = c.createStatement ();
> >>>>s.execute ("declare foo cursor for select * from bar");
> >>>>
> >>>>while (true)
> >>>>{
> >>>> ResultSet rs = s.executeQuery ("fetch 10 from foo");
> >>>> int count = 0;
> >>>> while (rs.next ())
> >>>> {
> >>>> count++;
> >>>> doStuffWithThisRow (rs);
> >>>> }
> >>>>
> >>>> if (count < 10) //The whole cursor contents has been processed
> >>>> break;
> >>>>}
> >>>>
> >>>>
> >>>>I hope, it helps...
> >>>>
> >>>>Dima
> >>>>
> >>>>
> >>>>
> >>>>---------------------------(end of broadcast)---------------------------
> >>>>TIP 1: subscribe and unsubscribe commands go to majordomo@postgresql.org
> >>>>
> >>>>
> >>>>
> >>>>
> >>>
> >>>
> >>>
> >>>
> >>
> >>
> >
> >
> >
> >
>
>
>
> ---------------------------(end of broadcast)---------------------------
> TIP 2: you can get off all lists at once with the unregister command
> (send "unregister YourEmailAddressHere" to majordomo@postgresql.org)
>
>