这个错误通常发生在游标不在事务块中时。解决方法是将DECLARE CURSOR和BEGIN语句放在同一个事务块中。
以下是一个包含DECLARE CUSOR和BEGIN的事务示例:
BEGIN; DECLARE my_cursor CURSOR FOR SELECT * FROM my_table; FETCH NEXT FROM my_cursor; CLOSE my_cursor; COMMIT;
确保将它们放在BEGIN和COMMIT之间,并在执行FETCH和CLOSE命令之前从游标中读取数据。
如果你看到这个错误,只需检查游标是否在事务中,如果不是,将其移到事务块中即可。