-
hab mir den Fehler durchgelesen. Ich tippe mal auf diesen Punkt als Ursache:
Bei einem der Eingabeparameter der Funktion ist ein Datenabgleichungsfehler aufgetreten.
Sowas dachte ich mir zumindest,
leider wüsste ich nicht, wie ich das korrekt übergebe.
-
Da musst du mal in die Doku schauen, was als Feldtypen denn da so unterstützt wird.
Alternativ musst du halt über Zeichenfelder gehen.
-
Wo kann ich die Doku finden?
Habe mir http://publib.boulder.ibm.com/iserie...mstch2data.htm
angeschaut und dementsprechend versucht:
Code:
RIAUFO numeric(11, 2) path 'Balance'
leider funktionierte das auch nicht.
Auch:
Code:
//-----------------------------------------------------------------------
// Prozedur XML speichern
//-----------------------------------------------------------------------
P xmltosql B
D PI
D file_name S 900A
D $$AUFO S 13A
/free
exec sql set option commit=*CHG;
exec sql declare c2 cursor for
select info_req.*
from xmltable('/ExCustomerDataList/Customer'
passing xmlparse(document get_xml_file('/home/codaho/test.xml'))
columns
RIONID varchar(20) path 'CustomerNo',
RIANZA varchar(5) path 'NoOfSuccessfullOrders',
$$AUFO char(13 ) path 'Balance'
) info_req;
exec sql open C2;
dou (sqlcode <> *zeros) and sqlcode <> 326;
exec sql fetch c2 into :rionid, :rianza, :$$aufo;
riaufo = %dec($$aufo:11:2);
write risk00r;
enddo;
/end-free
bzw. :
Code:
$$AUFO varchar(13 ) path 'Balance'
wollen mir keinen erfolgreichen Versuch zurückgeben.
-
Update: musste im SQL noch auf *CHG umstellen.
Jetzt führt er da alles korrekt aus (auch mit decimal.
Bloß mein Programm liefert immer noch bloß eine leere Zeile, sobald ich
Balance mit rein nehme.
-
Und was sagt das berühmte Joblog?
Übrigens %DEC() verträgt nur ungern Leerzeichen. Der Feldtyp VARCHAR oder die Funktion %trim() wäre hier noch angebracht.
-
ok dankeschön!
Anzeigervariable erforderlich
Bin dabei jetzt auf: http://newsolutions.de/forum-systemi.../549-SQL-Error gestoßen.
Jetzt muss ich nur noch rausfinden, wo die hingehört
-
Beim Fetch benötigst du je Variable einen NULL-Anzeiger von Typ "5I 0":
exec SQL fetch : F1 : F1Null, : F2 : F2Null, ...;
Null-Anzeiger:
0 = OK
-1 = NULL
>0 = Warnung, Inhalt gekürzt
-
Ja tausend Dank!
Hast mich gut durchgeführt 
funktioniert jetzt einwandfrei:
Code:
//-----------------------------------------------------------------------
// Prozedur XML speichern
//-----------------------------------------------------------------------
P xmltosql B
D PI
D file_name S 900A
D anz1 S 5I 0
D anz2 S 5I 0
D anz3 S 5I 0
/free
exec sql set option commit=*CHG;
exec sql declare c2 cursor for
select info_req.*
from xmltable('/ExCustomerDataList/Customer'
passing xmlparse(document get_xml_file('/home/codaho/test.xml'))
columns
RIONID varchar(20) path 'CustomerNo',
RIANZA varchar(5) path 'NoOfSuccessfullOrders',
RIAUFO decimal(11, 2) path 'Balance'
) info_req;
exec sql open C2;
dou (sqlcode <> *zeros) and sqlcode <> 326;
exec sql fetch c2 into :rionid :anz1, :rianza :anz2, :riaufo :anz3;
write risk00r;
enddo;
/end-free
P E
-
Mich würde da schon interessieren, was denn die NULL-Anzeiger mal anderes als 0 anzeigen!
-
Ja, da bau ich jetzt gerade dran.
Dachte mir das wie folgt:
Wenn sie nicht 0 anzeigen, wird bei der ID der Satz übersprungen,
bei den anderen Werten werden diese jeweils mit 0 gefüllt.
Zudem wird immer ein Protokollsatz erstellt, der die Werte der Felder + Null-Anzeiger Werte enthält.
-
Indikator-Variablen bringen 0 zurück wenn kein NULL-Wert vorliegt und auch sonst alles in Ordnung ist.
-1 wird bei NULL-Wert ausgegeben, -2 ist Data-Mapping-Error.
NULL-Werte kann man übrigens auch umgehen (falls das gewünscht ist), in dem man im XMLTABLE einen Default-Wert angibt.
... FeldName DataTypeDefinition Default='WasAuchImmer' Path='' ...
Birgitta
Similar Threads
-
By programmer400 in forum IBM i Hauptforum
Antworten: 4
Letzter Beitrag: 18-11-14, 15:22
-
By Gimli in forum IBM i Hauptforum
Antworten: 5
Letzter Beitrag: 08-04-03, 08:54
-
By kazamm in forum IBM i Hauptforum
Antworten: 2
Letzter Beitrag: 18-02-03, 08:04
-
By hs in forum IBM i Hauptforum
Antworten: 1
Letzter Beitrag: 18-11-02, 14:44
-
By mott in forum IBM i Hauptforum
Antworten: 3
Letzter Beitrag: 20-06-02, 10:24
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