-
Nun, irgendwo wird der Überlauf wohl stattfinden.
Das Problem ist, dass STRSQL intern mit Anzeiger-Variablen arbeiten kann, so dass SQL-Fehler nicht zum Abbruch des Queries führen sondern das Ergebnis mit '++++' dargestellt wird.
Per ODBC-SQL besteht genau diese Möglichkeit nicht !
Wenn also bei einer Berechnung ein Fehler auftritt wird der Query eben abgebrochen.
Man hat dann nur die Möglichkeiten:
a) per STRSQL das '++++'-Ergebnis zu suchen
b) per CASE- und CAST-Ausdruck die Berechnung zu beeinflussen
z.B. Division durch 0 verhindern:
case wert2 when 0 then 0 else wert1/wert2 end
Das nächste Problem liegt ggf. an der Packed-Ausprägung.
STRSQL unterstützt ggf. bis PACKED(63,n) !
Bei ODBC-SQL ist das max. Packed(28,n), da der Datentyp Currency z.B. von Excel verwendet wird und dieser eben nur 28 Stellen unterstützt.
Hier kann dann der CAST-Ausdruck helfen:
CAST(Formel as double) oder double(Formel)
Dies geht ggf. zu Lasten der Genauigkeit, kann aber je nach Formel vernachlässigt werden.
Benötigt man diese jedoch, so sind die Zwischenergebnisse einer Formel ggf. anzupassen, da SQL intern immer das Maximum des theortisch möglichen verwendet.
Also
DEC(11, 2) * DEC(11,2) => DEC(30,4)
Wenn das tatsächliche Ergebnis aber garantiert kleiner sein kann hilft auch hier ein CAST:
DEC(Formel, 13, 2) oder
cast(Formel as dec(13, 2))
Das Ganze dann noch sinnvoll in CASE gepackt.
Bei Joins kann es noch zusätzlich Probleme geben, aber meist ist das Ergebnis NULL wenn einer der beteiligten Werte NULL ist (nicht vorhanden im Join ergibt NULL).
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