-
SQL Sensitiver Cursor Probleme
Hi,
Habe folgendes Problem:
Ein einwandfrei funktionierendes Programm läuft (ohne dass jemand was geändert hat) nicht mehr.
Fehlermeldung beim OPEN des Cursors:
SQLCOD -243 =
Nachricht . . . : Als SENSITIVE definierter Cursor &1 kann für die
angegebene Anweisung SELECT nicht definiert werden.
Ursache . . . . : Der Cursor &1 ist als SENSITIVE definiert, für die Abfrage
muss jedoch eine temporäre Ergebnistabelle erstellt werden. Ein als
SENSITIVE defineirter Cursor kann nicht implementiert werden.
Fehlerbeseitigung: Den Cursor als ASENSITIVE oder INSENSITIVE neu definieren
oder die Abfrage so ändern, dass die Erstellung einer temporären
Ergebnistabelle nicht mehr erforderlich ist.
---------------
SQL Statement:
DECLARE C2 DYNAMIC SCROLL CURSOR FOR
SELECT ZSCSCD, KOFAHR, CHSTR, KOFLNR, KOLFS,
DECIMAL(COUNT(*), 7, 0)
FROM MM4N4LIB/INTZCH
INNER JOIN TBLZSC ON CHSTR = ZSCSTR
INNER JOIN TBLZKO ON CHSTR = STRNUM
WHERE
ZSCSCD = :TOUR
AND CHVC = :$TRNUM
AND CHSTS = 1
AND CHSTR NOT IN
(SELECT CHSTR FROM MM4N4LIB/INTZCH WHERE CHSTS = 2)
GROUP BY ZSCSCD, KOFAHR, CHSTR, KOFLNR, KOLFS
ORDER BY ZSCSCD, KOFAHR, CHSTR, KOFLNR, KOLFS
-------------------------
Interaktiv funktioniert das SQL natürlich normal
Ich lese da mal folgendes heraus:
Bei meinem SCROLL Cursor kann ich keinen temporären Index mehr erstellen.
Hat von euch schon mal jemand dieses Problem gehabt ?
Haben das Problem natürlich bei mehreren SQL Programmen, die mit Scroll Cursor laufen. Bewusstes PTF einspielen hat nicht stattgefunden, ebensowenig ein IPL.
HIILFEEEE
Rince
-
Hallo,
interaktiv gibt es das Problem der Cursor sensitivity nicht, hast du mal PRTSQLINF und die Erstellungsdatümer abgeprüft? ist das Problem User dependent?
mfg
Dieter Bender
Zitat von Rincewind
Hi,
Habe folgendes Problem:
Ein einwandfrei funktionierendes Programm läuft (ohne dass jemand was geändert hat) nicht mehr.
Fehlermeldung beim OPEN des Cursors:
SQLCOD -243 =
Nachricht . . . : Als SENSITIVE definierter Cursor &1 kann für die
angegebene Anweisung SELECT nicht definiert werden.
Ursache . . . . : Der Cursor &1 ist als SENSITIVE definiert, für die Abfrage
muss jedoch eine temporäre Ergebnistabelle erstellt werden. Ein als
SENSITIVE defineirter Cursor kann nicht implementiert werden.
Fehlerbeseitigung: Den Cursor als ASENSITIVE oder INSENSITIVE neu definieren
oder die Abfrage so ändern, dass die Erstellung einer temporären
Ergebnistabelle nicht mehr erforderlich ist.
---------------
SQL Statement:
DECLARE C2 DYNAMIC SCROLL CURSOR FOR
SELECT ZSCSCD, KOFAHR, CHSTR, KOFLNR, KOLFS,
DECIMAL(COUNT(*), 7, 0)
FROM MM4N4LIB/INTZCH
INNER JOIN TBLZSC ON CHSTR = ZSCSTR
INNER JOIN TBLZKO ON CHSTR = STRNUM
WHERE
ZSCSCD = :TOUR
AND CHVC = :$TRNUM
AND CHSTS = 1
AND CHSTR NOT IN
(SELECT CHSTR FROM MM4N4LIB/INTZCH WHERE CHSTS = 2)
GROUP BY ZSCSCD, KOFAHR, CHSTR, KOFLNR, KOLFS
ORDER BY ZSCSCD, KOFAHR, CHSTR, KOFLNR, KOLFS
-------------------------
Interaktiv funktioniert das SQL natürlich normal
Ich lese da mal folgendes heraus:
Bei meinem SCROLL Cursor kann ich keinen temporären Index mehr erstellen.
Hat von euch schon mal jemand dieses Problem gehabt ?
Haben das Problem natürlich bei mehreren SQL Programmen, die mit Scroll Cursor laufen. Bewusstes PTF einspielen hat nicht stattgefunden, ebensowenig ein IPL.
HIILFEEEE
Rince
-
Hi,
Dank schneller PMR Hilfe habe ich die Lösung:
Seit V5R3M0 muss man statt dem DYNAMIC Scroll von V5R2
jetzt ASENSITIVE SCROLL definieren.
Zu finden in den Benutzeranmerkungen der Releasedokumentation.
3.44.3 DYNAMIC keyword handled as if SENSITIVE DYNAMIC has been
specified
For V5R3, the sensitivity and scrollability attributes that can be
specified in DECLARE CURSOR and in the ATTRIBUTES clause are being
expanded to more closely match what other DB2 UDB platforms support.
This change exposed an incompatibility between what is done on the
iSeries and what is specified in the SQL standard.
In releases prior to V5R3, the DYNAMIC keyword modified a scrollability
option, and indicated that a scrollable cursor can be used for updates.
In the SQL standard the DYNAMIC keyword modifies a sensitivity option.
For V5R3, the DYNAMIC keyword will be handled as if SENSITIVE DYNAMIC
had been specified. For existing applications that specify DYNAMIC
SCROLL, this will have the desired effect of specifying a scrollable
cursor that can be used for updates.
These changes will cause the following compile-time and runtime
differences in V5R3:
* The syntax INSENSITIVE DYNAMIC SCROLL will not be allowed in V5R3.
The SQL precompiler will signal an error at compile time.
* A cursor declared as DYNAMIC SCROLL in V5R2 is ASENSITIVE. In V5R3,
it will be SENSITIVE. The difference between the two is that an error
is signaled for a SENSITIVE cursor if a sensitive cursor cannot be
implemented. For an ASENSITIVE cursor, an insensitive cursor is
implemented and no error is signaled.
* If a cursor was created in a prior release declared as DYNAMIC SCROLL
and the query implementation would require the creation of a
temporary result table, a runtime error will be signaled. Conditions
that require the creation of a temporary result table are listed in
messages CPI4324 and CPI4325 in message file QCPFMSG.
Wann ist eigentlich endlich Freitag ?
Rince
-
Wenn Du DYNAMIC weggelassen hättest, hättest Du weder unter V5R2 noch unter V5R3 Probleme bekommen.
Dynamic bewirkt, dass keine temporären Objekte (Ergebnistabellen keine temporären Indices) gebildet werden, sondern immer auf den echten Tabellen mit den echten Daten gearbeitet wird. Die Arbeit mit LIVE-Daten ist erforderlich, wenn der Cursor upgedatet werden soll. Da Du jedoch mehrere Dateien miteinander verbindest, kann der Cursor nie upgedated werden, also sind auch keine LIVE-Daten erforderlich.
Im Umkehrschluss heißt das:
Dynamic muss nur dann in Verbindung mit einem Scroll Cursor angegeben werden, wenn die Ergebnissätze fortgeschrieben werden sollen, also irgendwo im Programm ein Update oder Delete mit WHERE CURRENT OF Cursor angegeben wurde.
Die Angabe von ASENSITIVE bewirkt, dass je nach dem wie das SQL-Statement optimiert der Cursor entweder SENSITIVE (basierend auf LIVE-Daten) oder INSENSITIVE (temporäre Ergebnistabellen werden erstellt) geöffnet wird.
Birgitta
-
... soll das jetzt heißen, dass ihr einen Releasewechsel ohne IPL hinbekommen habt??? Respekt, Respekt!!!
Zitat von Rincewind
Hi,
Ein einwandfrei funktionierendes Programm läuft (ohne dass jemand was geändert hat) nicht mehr.
Haben das Problem natürlich bei mehreren SQL Programmen, die mit Scroll Cursor laufen. Bewusstes PTF einspielen hat nicht stattgefunden, ebensowenig ein IPL.
Dank schneller PMR Hilfe habe ich die Lösung:
Seit V5R3M0 muss man statt dem DYNAMIC Scroll von V5R2
jetzt ASENSITIVE SCROLL definieren.
Wann ist eigentlich endlich Freitag ?
Rince
-
Wie so oft wurde der Update Teil dieses einen Cursors im laufe der Entwicklung entfernt
@Bender
Wir sind eben unschlagbar ^^
@Realität: Nein wir haben das Programm nur nie gewandelt nach Releasewechsel (bis eben letzte Woche). Anscheinend hat der Releasewechsel das Objekt auch nicht "umgestellt". Was ja an sich positiv ist, da das Objekt nun nicht mehr funktionierte.... mir aber grundsätzlich zu denken gibt was die Aktualität mancher Programme angeht die wir seit Jahren nicht gewandelt haben....
Rince
P.s. Zusätzlich wollten wir ursprünglich mit dem Dynamic vermutlich erreichen, dass die Leute immer die sich stetig verändernden Livedaten im Zugriff haben statt den Daten die sie in einer temporären Ergebnistabelle eventuell noch haben
Wie dem auch sei... mein Tag ist nun entspannter :-)
Similar Threads
-
By christian_lettner in forum NEWSboard Programmierung
Antworten: 2
Letzter Beitrag: 16-11-06, 10:15
-
By FNeurieser in forum NEWSboard Programmierung
Antworten: 3
Letzter Beitrag: 11-10-06, 14:53
-
By malzusrex in forum IBM i Hauptforum
Antworten: 8
Letzter Beitrag: 19-09-06, 11:04
-
By Kaufmann in forum IBM i Hauptforum
Antworten: 11
Letzter Beitrag: 28-06-06, 14:11
-
By loeweadolf in forum NEWSboard Programmierung
Antworten: 2
Letzter Beitrag: 01-06-06, 09:43
Berechtigungen
- Neue Themen erstellen: Nein
- Themen beantworten: Nein
- You may not post attachments
- You may not edit your posts
-
Foren-Regeln
|
Erweiterte Foren Suche
Google Foren Suche
Forum & Artikel Update eMail
AS/400 / IBM i
Server Expert Gruppen
Unternehmens IT
|
Kategorien online Artikel
- Big Data, Analytics, BI, MIS
- Cloud, Social Media, Devices
- DMS, Archivierung, Druck
- ERP + Add-ons, Business Software
- Hochverfügbarkeit
- Human Resources, Personal
- IBM Announcements
- IT-Karikaturen
- Leitartikel
- Load`n`go
- Messen, Veranstaltungen
- NEWSolutions Dossiers
- Programmierung
- Security
- Software Development + Change Mgmt.
- Solutions & Provider
- Speicher – Storage
- Strategische Berichte
- Systemmanagement
- Tools, Hot-Tips
Auf dem Laufenden bleiben
|
Bookmarks