-
Ich verstehe es nicht
Manchmal glaube ich, ich sollte in Rente gehen.
Habe hier ein SQL-Statement das im Green Screen mit strsql sauber läuft.
Code:
insert into dat007 /*11.08.20 09:29*/
(D007PLKZ, D007KZ1, D007ARTNR, D007KZ2, D007FILLE1,
D007KZ3, D007FILLE2, D007KZ4, D007FILLE3, D007KZ5,
D007PREIS1, D007KZ6,
D007PREIS2, D007KZ7,
D007PREIS3, D007KZ8,
D007PREIS4, D007KZ9,
D007PRAB2, D007KZ10,
D007PRAB3, D007KZ11,
D007PRAB4)
select
CAST(case when preisliste = ' ' then ' '
when preisliste = 'EH' then ' '
when preisliste = '201869' then '1000'
when preisliste = '200065' then '1001'
when preisliste = '201903' then '1002'
when preisliste = '201779' then '1003'
when preisliste = '2041689' then '1004'
when preisliste = '2041728' then '1005'
when preisliste = '2041798' then '1006'
else preisliste end
AS CHAR(5) CCSID 273),
';', material, ';', ' ',
';', ' ', ';', ' ', ';',
dec(EK_PR00001, 6 , 2), ';',
dec(EK_PR00002, 6 , 2), ';',
dec(EK_PR00003, 6 , 2), ';',
dec(EK_PR00004, 6 , 2), ';',
dec(replace(STAFF00001,'.',''), 4, 0), ';',
dec(replace(STAFF00002,'.',''), 4, 0), ';',
dec(replace(STAFF00003,'.',''), 4, 0)
from dat012
Wenn ich das selbe unter IBM i Access Client Solutions Version: 1.1.8.2 (sprich Java Version) mache, bekomme ich eine Fehlermeldung mit der ich nichts anfangen kann.
Code:
SQL-Status: 22018
Anbietercode: -420
Nachricht: [SQL0420] Zeichen in CAST-Argument ungültig. Ursache . . . . : Ein Zeichen im Argument für die Funktion CAST war nicht korrekt. Fehlerbeseitigung: Die Ergebnisdatenart in eine Art ändern, die die Zeichen im CAST-Argument erkennt, oder das Argument so ändern, dass es die gültige Darstellung eines Werts für die Ergebnisdatenart enthält. Die Anforderung wiederholen.
Die Verarbeitung wurde beendet, weil die hervorgehobene Anweisung nicht erfolgreich ausgeführt wurde.
Wenn ich aus dem insert ein Select mache läuft der durch.
Ich habe diverse Felder mal entfernt und der Übeltäter scheint das hier zu sein: dec(EK_PR00001, 6 , 2), ';',
Verstehe ich aber nicht, weil die Werte hinterher gut aussehen und wie schon gesagt der GreenScreen nicht mosert.
Was tun außer sich im See zu ertränken?
GG 3945
Wenn ich ein Teilselect im GreenScreen laufen lasse sieht das Ergebnis so aus:
Anfang auf Zeile . . . . . .
....+....1....+....2....+...
"EK-Preis0" Funktion CAST
6,47 6,47
1,19 1,19
1,19 1,19
1,35 1,35
1,19 1,19
1,35 1,35
1,52 1,52
1,19 1,19
1,19 1,19
in Java so:
6,47 -
1,19 -
sprich er zeigt mir da schon keine korrekten Werte an.
-
Irgendwas vermisse ich da noch.
Wozu sind die ganzen ';'-Spalten gut?
Andererseits habe ich bzgl. des DEC-Casts auch schon Probleme in V7R3 bekommen, wenn Nachkommastellen abgeschnitten werden.
STRSQL setzt da irgendeine Option (habe ich nicht gefunden), die diese Warnungen ignoriert.
Mache ich das dann native im Programm wird eine Diagnosenachricht "Signifikante Stellen abgeschnitten" ausgeworfen und der SQL stirbt. Die Meldung findet man auch nur im Joblog.
Selbst ein "dec(round(feld, 2), 11, 2)" führt zu diesem Fehler.
Erst ein "cast round(feld, 2) as dec(11, 2))" funktionierte, da die Funktion DEC() wohl anders implementiert ist als CAST().
Zu mal früher das Abschneiden von Nachkommastellen nie zu Fehlern geführt hat.
-
mach mal 6, 2 statt 6 , 2
Das Notwendige steht über dem technisch machbaren.
(klingt komisch, funktioniert aber!)
-
Die Anzahl Leerzeichen zwischen Parametern ist nicht relevant, es muss nur sichergestellt sein, dass nicht eine Zahl interpretiert wird.
dec(a, 11, 2)
dec(a, 11 , 2 )
dec(a, 11,2) <= Führt bei Decimalcomma (Connection) zu Fehler, bei Decimalpoint funktionierts.
-
Zitat von Fuerchau
Irgendwas vermisse ich da noch.
Wozu sind die ganzen ';'-Spalten gut?
Die Daten werden dann per CPYTOIMPF exportiert
-
Mach einen ACS update auf 1.1.8.5!
kf
-
Für den CPYTOIMPF brauchst du die nicht, da FLDDLM ja als Trennzeichen angegeben wird.
Und der Fehler wird von SQL gemeldet und nicht von ACS abhängig.
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