View Full Version : Datenumsetzungsfehler bei READ
Peter Kosel
05-04-04, 11:53
Hallo *all
ich habe ein Problerm mit VA-RPG und einer Tabelle auf der iSeries. Und zwar bekomme ich nach einem READ die Fehlermeldung CPF5035 - Datenzuordnungsfehler für jedes Feld das NULL enthält. Was kann ich tun um das abzufangen, und trotzdem den Datensatz zu lesen ?
(Ich brauche die Felder die NULL enthalten nicht, möchte aber auch keinen VIEW erzeugen - Fremdsoftware)
Danke vorab für alle Antworten
Peter
Mit VARPG gar nichts !
NULL-Felder werden nur ab ILE-RPG unterstützt.
Alternativ kannst du ja auch embedded SQL verwenden.
Hallo Peter,
Hallo *all
ich habe ein Problerm mit VA-RPG und einer Tabelle auf der iSeries. Und zwar bekomme ich nach einem READ die Fehlermeldung CPF5035 - Datenzuordnungsfehler für jedes Feld das NULL enthält. Was kann ich tun um das abzufangen, und trotzdem den Datensatz zu lesen ?
(Ich brauche die Felder die NULL enthalten nicht, möchte aber auch keinen VIEW erzeugen - Fremdsoftware)
Danke vorab für alle Antworten
Peter
ich verstehe diese View Scheu nicht ganz; solange da keine Constraints dranhängen kann das allenfalls beim Release Wechsel für diese Software stören.
mfg
Dieter Bender
Peter Kosel
06-04-04, 13:15
Hallo nochmals zusammen,
ich habe testweise nun doch einen View erstellt. Obendrein habe ich embedded SQL verwendet. Neues Problem bei der Umwandlung nun :
RNV8526E Anweisung /EXEC SQL enthält Fehler: SQL0007N Das auf "" folgende Zeichen " " ist ungltig. SQLSTATE=42601
Ist dieses ebenfalls ein Zeichenumsetzungsfehler des SQL-Prozessors ?
So eine einfache Geschichte, aber ich komme nicht weiter.
Muss ich das PGM wirklich auf den Server verlegen ?
genervte Grüsse
Peter
Hallo Peter,
1. Bei der Verwendung von embedded SQL brauchst Du eigentlich keine View; dann kannst Du die Felder einfach weglassen oder mit der SQL Funktion COALESCE die Nullvalues gegen Blanks tauschen:
SELECT COALESCE(FeldMitNull, ' '),...... FROM HasteNichtGesehen...
2. Was immer das Problem sein mag, es sollte hebbar sein; lediglich Deine Angaben sind etwas dürftig, um aus der Ferne was damit anfangen zu können. Da bräuchten wir schon den Code Ausschnitt, auf den sich der Fehler bezieht.
mfg
Dieter Bender
Hallo nochmals zusammen,
ich habe testweise nun doch einen View erstellt. Obendrein habe ich embedded SQL verwendet. Neues Problem bei der Umwandlung nun :
RNV8526E Anweisung /EXEC SQL enthält Fehler: SQL0007N Das auf "" folgende Zeichen " " ist ung?ltig. SQLSTATE=42601
Ist dieses ebenfalls ein Zeichenumsetzungsfehler des SQL-Prozessors ?
So eine einfache Geschichte, aber ich komme nicht weiter.
Muss ich das PGM wirklich auf den Server verlegen ?
genervte Grüsse
Peter
Hallo Peter,
kannst Du mal dein SQL-Statement posten?
Dann sieht man vielleicht mehr!
Birgitta
Peter Kosel
06-04-04, 13:42
Hallo Dieter,
du hast natürlich recht, deshalb hier nun ein Code-Ausschnitt :
/END-FREE
C/EXEC SQL
C+ select * into :lsartcw1 from opusdata.lsartcw1
C+ where arartnr = :kpartnr
C+ and arvar = 0
C/END-EXEC
/FREE
Ich habe auch noch die Umwandlungsliste beigefügt. Ich habe natürlich schon selbst gelesen, aber leider nichts entdecken können :-(
Peter
Meinst du nicht, dass zwischen "fr" und "om" ein paar zu viele Leerzeichen stehen ?
Wenn das der Select auf die NULL-Felddatei ist, wirst du zur Laufzeit wieder das gleiche Problem haben.
Du must noch Indicatoren angeben um NULL-Felder zu erhalten !
d IndArr 5I 0 dim(nn)
select * into :lsartcw1 :IndArr ...
Peter Kosel
06-04-04, 14:10
Hallo Fürchau,
diese Lücke baut der SQL-Preprozessor in die Umwandlungsliste ein. Das kannst Du an den anderen SQL-Stmts sehen. Das scheint (scheint) nicht das Problem zu sein.
Gruss
Peter
PS.Das mit den Idikatoren und den NULL-Werten hatte ich irgendwie schon wieder vergessen :-(
Hallo Peter,
ich denke es liegt daran, dass Du die SQL-Namenskonventionen verwendest.
Um ganz sicher zu gehen, dass die SQL-Namenskonventionen verwendet werden, füge das folgende Statement in deine Quelle ein:
C/EXEC SQL Set Option Naming = *SQL
C/END-EXEC
Oder versuche es mit der System-Schreibweise Bibliothek/Datei.
Am besten wäre allerdings, wenn Du die Bibliothek ganz weglassen könntest.
Birgitta