DB2 - Problembeschreibung
Problem IC64962 | Status: Geschlossen |
SQL774N AFTER INTERRUPT OF SQL PROCEDURE CONTAINING ONE OR MORE ATOMIC COMPOUND STATEMENTS | |
Produkt: | |
DB2 FOR LUW / DB2FORLUW / 970 - DB2 | |
Problembeschreibung: | |
If you terminate an SQL procedure containing an atomic compound statement by interrupting the procedure, any statement that run on that connection (outside of the stored procedure) may result in SQLCODE -774. Example: db2 "call proc_stat_chngs_1(1)" ^CSQL0952N Processing was cancelled due to an interrupt. SQLSTATE=57014 $ db2 commit SQL0774N The statement cannot be executed within an ATOMIC compound SQL statement. SQLSTATE=2D522 db2 "insert into session.del_milestones values ('1','1','1')" DB21034E The command was processed as an SQL statement because it was not a valid Command Line Processor command. During SQL processing it returned: SQL0774N The statement cannot be executed within an ATOMIC compound SQL statement. SQLSTATE=2D522 db2 terminate SQL0774N The statement cannot be executed within an ATOMIC compound SQL statement. SQLSTATE=2D522 | |
Problem-Zusammenfassung: | |
If you terminate an SQL procedure containing an atomic compound statement by interrupting the procedure, any statement that run on that connection (outside of the stored procedure) may result in SQLCODE -774. Example: db2 "call proc_stat_chngs_1(1)" ^CSQL0952N Processing was cancelled due to an interrupt. SQLSTATE=57014 $ db2 commit SQL0774N The statement cannot be executed within an ATOMIC compound SQL statement. SQLSTATE=2D522 db2 "insert into session.del_milestones values ('1','1','1')" DB21034E The command was processed as an SQL statement because it was not a valid Command Line Processor command. During SQL processing it returned: SQL0774N The statement cannot be executed within an ATOMIC compound SQL statement. SQLSTATE=2D522 db2 terminate SQL0774N The statement cannot be executed within an ATOMIC compound SQL statement. SQLSTATE=2D522 | |
Local-Fix: | |
Add the NEW SAVEPOINT LEVEL option to the CREATE PROCEDURE statement for an SQL procedure. That procedure will not cause subsequent -774 errors if interrupted. CREATE PROCEDURE TEST(in N integer) LANGUAGE SQL NEW SAVEPOINT LEVEL BEGIN ATOMIC -- ... END This modification need only be applied to SQL procedures containing BEGIN ATOMIC statements, and only to those that are likely subject to interruption (e.g., by Ctrl-C, FORCE APPLICATION, etc.). You must recompile any modified procedures to apply the workaround. | |
verfügbare FixPacks: | |
DB2 Version 9.7 Fix Pack 2 for Linux, UNIX, and Windows | |
Lösung | |
First fixed in DB2 UDB Version v9.7, FixPak 2. | |
Workaround | |
Add the NEW SAVEPOINT LEVEL option to the CREATE PROCEDURE statement for an SQL procedure. That procedure will not cause subsequent -774 errors if interrupted. CREATE PROCEDURE TEST(in N integer) LANGUAGE SQL NEW SAVEPOINT LEVEL BEGIN ATOMIC -- ... END This modification need only be applied to SQL procedures containing BEGIN ATOMIC statements, and only to those that are likely subject to interruption (e.g., by Ctrl-C, FORCE APPLICATION, etc.). You must recompile any modified procedures to apply the workaround. | |
Weitere Daten | |
Datum - Problem gemeldet : Datum - Problem geschlossen : Datum - der letzten Änderung: | 04.12.2009 13.05.2010 13.05.2010 |
Problem behoben ab folgender Versionen (IBM BugInfos) | |
9.7. | |
Problem behoben lt. FixList in der Version | |
9.7.0.2 |