DB2 - Problem description
Problem IC67297 | Status: Closed |
ROLLBACK IS NOT ALLOWED TO ROLLBACK BEYOND BEGINNING OF ANONYMOUS BLOCK | |
product: | |
DB2 FOR LUW / DB2FORLUW / 980 - DB2 | |
Problem description: | |
While executing a PL/SQL anonymous block (or SQL PL compiled compound statement), you will obtain error SQL0751N in the following situations: - The anonymous block contains a ROLLBACK statement. - The anonymous block invokes a routine that causes a ROLLBACK statement to be executed. For example: begin rollback; end; / DB21034E The command was processed as an SQL statement because it was not a valid Command Line Processor command. During SQL processing it returned: SQL0751N Routine "SYSIBMINTERNAL.COMPILED_ANON_BLOCK_INVOKE" (specific name "SQL100310140808540") attempted to execute a statement that is not allowed. create or replace procedure P is begin rollback; end; / begin p; end; / DB21034E The command was processed as an SQL statement because it was not a valid Command Line Processor command. During SQL processing it returned: SQL0751N Routine "MYSCHEMA.P" (specific name "P") attempted to execute a statement that is not allowed. This behaviour is a known limitation in DB2 Version 9.7. | |
Problem Summary: | |
**************************************************************** * USERS AFFECTED: * * ALL * **************************************************************** * PROBLEM DESCRIPTION: * * While executing a PL/SQL anonymous block (or SQL PL * * compiledcompound statement), you will obtain error SQL0751N * * in thefollowing situations:- The anonymous block contains a * * ROLLBACK statement.- The anonymous block invokes a routine * * that causes aROLLBACKstatement to be executed.For * * example:beginrollback;end;/DB21034E The command was * * processed as an SQL statementbecauseit was not avalid * * Command Line Processor command. During SQL * * processingitreturned:SQL0751N * * Routine"SYSIBMINTERNAL.COMPILED_ANON_BLOCK_INVOKE"(specific * * name"SQL100310140808540") attempted to execute a statement * * thatisnot allowed.create or replace procedure * * Pisbeginrollback;end;/beginp;end;/DB21034E The command was * * processed as an SQL statementbecauseit was not avalid * * Command Line Processor command. During SQL * * processingitreturned:SQL0751N Routine "MYSCHEMA.P" * * (specific name "P") attemptedtoexecute astatement that is * * not allowed. * **************************************************************** * RECOMMENDATION: * * Upgrade to DB2 UDB version 9.8 fix pack 3. * **************************************************************** | |
Local Fix: | |
Convert the anonymous block to a stored procedure, and invoke the procedure using CALL. For example: create or replace procedure Q is begin p; end; / call Q; drop procedure Q; | |
available fix packs: | |
DB2 Version 9.8 Fix Pack 3 for Linux, UNIX, and Windows | |
Solution | |
Problem was first fixed in DB2 UDB Version 9.8 Fix Pack 3. | |
Workaround | |
not known / see Local fix | |
Timestamps | |
Date - problem reported : Date - problem closed : Date - last modified : | 17.03.2010 08.11.2012 08.11.2012 |
Problem solved at the following versions (IBM BugInfos) | |
9.8.FP3 | |
Problem solved according to the fixlist(s) of the following version(s) | |
9.8.0.3 |