Anmelden

View Full Version : SQL0901-Fehler



Seiten : 1 [2]

KM
01-08-13, 08:44
... dann bringt das löschen auch nix!

stimmt, das hab ich jetzt auch festgestellt. Ich hab die SQL-Packages alle gelöscht und hab immernoch dasselbe Problem.

Jetzt ist mir aufgefallen, dass dieser SQL0901-Fehler nur bei einem bestimmten SQL-Statement im Java-Programm auftritt. Die anderen SQLs funktionieren problemlos.

Bei folgendem SQL-Select tritt der Fehler im Java-Programm auf. In einer anderen Umgebung (z.B. STRSQL oder Squirrel) funktioniert er:


select cast(IAARTN as char(10) ccsid 1141), cast(TSARTN as char(10) ccsid 1141)
from LIB.DATEI1 A, LIB.DATEI2 B where A.IAARTN = B.TSRENR and IAFINR = 1
and IAPGRU <> 0 and IASTYP = 1 order by A.IAARTN, B.TSARTN

Jetzt hab ich mal die FROM und WHERE Klausel etwas geändert (auf inner join), so dass aber trotzdem dasselbe Ergebnis rauskommt:


select cast(IAARTN as char(10) ccsid 1141), cast(TSARTN as char(10) ccsid 1141)
from LIB.DATEI1 A inner join LIB.DATEI2 B on A.IAARTN = B.TSRENR and IAFINR = 1 where IAPGRU <> 0 and IASTYP = 1 order by A.IAARTN, B.TSARTN

Damit funktioniert's nun auch wieder im Java-Programm.
Kann mir das jemand erklären?

Gruß,
KM

BenderD
01-08-13, 09:51
... wenn sich das im Java Programm und Squirrel wirklich unterschiedlich verhält (und das nicht an anderen Auswahlwerten etc. legt), dann müssen die Treiber unterschiedlich sein und der eine ist buggy.

D*B

KM
01-08-13, 10:18
... wenn sich das im Java Programm und Squirrel wirklich unterschiedlich verhält (und das nicht an anderen Auswahlwerten etc. legt), dann müssen die Treiber unterschiedlich sein und der eine ist buggy.

Genau das hätte ich eigentlich auch erwartet. Aber beide Applikationen verwenden haargenau dieselbe jt400.jar in derselben Version. Deshalb versteh ich's ja nicht. Vor allem weil das Ding ja schon seit Jahren problemlos gelaufen ist und von heute auf morgen bei einem bestimmten SQL-Statement diesen ominösen SQL0901 erzeugt.

Gruß,
KM

BenderD
01-08-13, 12:18
... naja, da gibt es schon noch möglicherweise abweichende Bedingungen:
- Treiber properties
- Parameter Werte (Typ!!! und Inhalt)
- verwendete Java Konstrukte (prepared oder nicht)
- Vorgeschichte der session
- Timeouts
normalerweise soööte der Blick ins Joblog des Serverjobs weiterhelfen.

D*B

Fuerchau
01-08-13, 12:27
A.IAARTN = B.TSRENR
Artikel-Nr. = Rechnungsnummer:)?

Wie sehen die Originaltypen aus?
Der Fehler kann ja bei bestimmten Inhalten auftreten.

Wie ist eigentlich die CCSID des QZDA-Jobs?
Dann bringt ggf. der Cast auf 1141 nichts, da wieder in Job-CCSID gewandelt wird.

Außerdem hat das System manchmal Schwierigkeiten, wenn die Order-Felder nicht im Select enthalten sind, es ist zwar nun erlaubt aber man sollte es nicht tun.

Auch kann es Probleme geben, wenn die Ausdrücke keine expliziten Namen erhalten "cast(...) [as] ARTN".