PDA

View Full Version : SQL-Abfrage RRN



Seiten : [1] 2

tarkusch
19-11-12, 08:54
Hallo,

habe folgendes Statement im Sql direkt aufrufen können und auch Sätze dafür bekommen.



SELECT RRN(A),
A.* FROM ZW1EXT A WHERE (.....)
ORDER BY (....)

aber selbiges Sql-Satement in ILERPG eingebaut bekomme ich die Fehlermeldung(SQLSTT = '22003' )
SQL0304 SQLCODE -304 SQLSTATE 22003, 22023, 22504
Explanation: Conversion error in assignment to host variable &2.

Kann mir da jemand einen Hinweis geben?

Gruß

Tarki

Fuerchau
19-11-12, 09:36
Beim Fetch into kannst du nur
a) genau eine Struktur
b) alle Felder einzeln
angeben.
Das 2. Zielfeld ist wohl eine Struktur und das passt nicht zum 2. Ergebnisfeld.

tarkusch
19-11-12, 09:51
aber, wenn ich alle Felder einzeln angebe bekomme ich die Fehlermeldung +30



SQL0030 SQLCODE +30 SQLSTATE 01503
Explanation: Number of INTO host-variable incorrect.


Was ist eigentlich mit a) genau in eine Struktur gemeint?


Gruß

Tarki

andreaspr@aon.at
19-11-12, 09:51
Beim Fetch into kannst du nur
a) genau eine Struktur
b) alle Felder einzeln
angeben.
Das 2. Zielfeld ist wohl eine Struktur und das passt nicht zum 2. Ergebnisfeld.

Dem möchte ich widersprechen!
Bei einem FETCH INTO kannst du n Strukturen und/oder n Felder angeben.
Die DS wird sowieso aufgelöst. Du kannst also davor oder danach beliebig viele weiter Felder oder DS angeben.
Wichtig dabei ist nur, dass du auf die Reihenfolge achtest, dass die mit dem Ergebnis des Cursors übereinstimmt.

lg Andreas

tarkusch
19-11-12, 09:55
so jetzt ist es mir klar mit der Struktur.

ich fetche in folgende Struktur:


D MyDS E DS ExtName(ZW1EXT)

gibt es da eine Möglichkeit das RRN noch irgendwie anzuhängen oder zu manupulieren oder muss ich wirklich jedes einzelne Feld angeben?

andreaspr@aon.at
19-11-12, 09:56
Dein Beispiel müsste ca. so aussehen:



D ZW1EXTDS E DS extname(ZW1EXTDS)
D vRRN S 10I 0

/Free
Exec Sql Declare c1 Cursor For SELECT RRN(A),
A.* FROM ZW1EXT A WHERE (.....)
ORDER BY (....);

Exec Sql Open C1;

Exec Sql Fetch C1 Into :ZW1EXTDS, :vRRN;
/End-Free

tarkusch
19-11-12, 10:03
Danke, danke und noch einmal danke!
Funktioniert alles wie geschmiert.

B.Hauser
19-11-12, 10:35
Beim Fetch into kannst du nur
a) genau eine Struktur
b) alle Felder einzeln
angeben.
Das 2. Zielfeld ist wohl eine Struktur und das passt nicht zum 2. Ergebnisfeld.

Wer hat Dir den das erzählt?

Beim Fetch kannst Du natürlich zwischen einzelnen Ausgabe-Feldern und einer und mehreren Datenstrukturen. Die einzige Voraussetzung ist, dass die Anzahl der Felder identisch ist und dass die Datentypen kompatibel sind!

Sorry Andreas, ich hatte Deinen Kommentar nicht gesehen!

Birgitta

Fuerchau
19-11-12, 11:16
Ist wohl wieder mal Releaseabhängig ?

B.Hauser
19-11-12, 11:18
Ist wohl wieder mal Releaseabhängig ?

Wenn Du damit Release 2.3 oder 3.7 meinst vielleicht! Aber ich habe das so schon vor fast 20 Jahren eingesetzt

Birgitta