Hi : Sorry for replying lately. I tried to take the commit statement out of the function , and it works well. Thank you!
2013/6/10 Kevin Grittner <kgri...@ymail.com> > 高健 <luckyjack...@gmail.com> wrote: > > > CREATE OR REPLACE Function ... > > > BEGIN > > BEGIN > > > UPDATE ... > > COMMIT; > > > EXCEPTION > > WHEN OTHERS THEN > > END; > > END; > > > But when I select the table again, I found it not changed. > > > Anybody know the reason, maybe there are some wrong way by > > which I use the cursor. > > It has nothing to do with the way you are using the cursor; your > problem is that you are causing an error by attempting to COMMIT > inside a function (which is not allowed). This rolls back the > subtransaction defined by the BEGIN/EXCEPTION block. You then > suppress any display of the error with the WHEN OTHERS block. > > -- > Kevin Grittner > EnterpriseDB: http://www.enterprisedb.com > The Enterprise PostgreSQL Company >