Обсуждение: BUG #11822: ECPG Commit or Rollback error
The following bug has been logged on the website: Bug reference: 11822 Logged by: jls1983 Email address: jlsanz1983@gmail.com PostgreSQL version: Unsupported/Unknown Operating system: CentOs 6.2 Description: I use a 8.2 version of postgres, and get and solve the following mistake in a pgc program: Hi when a cursor is open and a fetch is in progres if then uses a commit or rollback instruction before close the cursor. The cursor get this error: ==== sqlca ==== sqlcode: -400 sqlerrm.sqlerrml: 44 sqlerrm.sqlerrmc: cursor "bolas" does not exist on line 141 sqlerrd: 0 0 0 0 0 0 sqlwarn: 0 0 0 0 0 0 0 0 sqlstate: 34000 =============== If the commit goes after close the cursor then the execution doesn't return any error. Sorry about my english. Best regards.
jlsanz1983@gmail.com writes:
> Hi when a cursor is open and a fetch is in progres if then uses a commit or
> rollback instruction before close the cursor.
> The cursor get this error:
> sqlerrm.sqlerrmc: cursor "bolas" does not exist on line 141
> If the commit goes after close the cursor then the execution doesn't return
> any error.
That sounds like expected behavior to me: ordinary cursors are
automatically closed at transaction end.
If you really need this to work, you can declare the cursor WITH HOLD,
but that entails a performance penalty.
regards, tom lane