Latest versionsfixlist
11.1.0.7 FixList
10.5.0.9 FixList
10.1.0.6 FixList
9.8.0.5 FixList
9.7.0.11 FixList
9.5.0.10 FixList
9.1.0.12 FixList
Have problems? - contact us.
Register for free anmeldung-x26
Contact form kontakt-x26

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
DB2 Version 9.8 Fix Pack 4 for AIX and Linux
DB2 Version 9.8 Fix Pack 5 for AIX and Linux

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 FixList