-
SQL: NULL als Ergebnis bei vielen Nachkommastellen
Hallo zusammen,
ich habe folgendes Phänomen:
Bei der Multiplikation von Feldern mit sehr vielen Nachkommastellen erhalte ich im SQL-Editor kein Ergebnis.
Zur Veranschaulichung:
Wenn ich dieses SQL (unter Grün) abschicke, bekomme ich richtiger Weise 8 als Ergebnis zurück:
SELECT 2.0000000000 * 2.0000000000 * 2.0000000000 as Ergebnis
FROM Tabelle
Wenn ich jetzt noch eine 0 ergänze, bekomme ich NULL als Ergebnis zurück:
SELECT 2.0000000000 * 2.0000000000 * 2.00000000000 as Ergebnis
FROM Tabelle
Nächster Effekt:
SELECT 50.0000000000000 * 20.00000000000000
from tabelle
-> funktioniert
Jetzt eine Nachkommastelle dazu:
SELECT 50.00000000000000 * 20.00000000000000
from tabelle
-> NULL
Jetzt wieder das gleich SQL von oben:
SELECT 50.0000000000000 * 20.00000000000000
from tabelle
-> auch NULL
SQL beenden, neu starten, gleiches SQL -> funktioniert
Man kann sehen, dass das Ergebnisfeld mit 27 Nachkommastellen noch ausgegeben wird, bei 28 ist wohl bei diesem Beispiel Schluss. Und das Ergebnisfeld wird nicht wieder verkleinert, wenn ich eine 0 wieder weg nehme, sondern erst, wenn ich die Session schließe. Alternativ muss ich viele Nachkommastellen entfernen, dann geht es wieder.
Hat noch jemand dieses Phänomen, oder gar eine Lösung dafür?
Betriebssystem ist übrigens 6.1
Gruß
Markus
-
Habs grade mal in 7.1 versucht,
reagiert identisch
it's not a trick, it's a feature
Robi
Das Notwendige steht über dem technisch machbaren.
(klingt komisch, funktioniert aber!)
-
Hallo,
habs bei 6.1 und 7.1 probiert und der erste Effekt tritt auch bei mir auf.
Den zweiten Effekt konnte ich jedoch nicht nachvollziehen.
Wenn ich mit F9 den zuvor korrekten ausgegebenen Select wieder hole, wird wieder die Abfrage korrekt ausgegebenen.
Vielleicht hast du eventuell nicht mit F9 die Abfrage geholt, sondern einfach nur hineinkopiert ohne die bestehende zeile mit den Nullen vorher zu löschen?
-
Versuch mal folgendes, je nachdem in welcher Umgebung Du das aufrufst:
1. iSeries Navigator --> Verbindung --> JDBC --> Dezimal Länge und Nachkommastellen auf 63 stellen. (funktioniert bei mir sogar auf V5R4).
2. Emedded SQL oder SQL Programmierung -->über ein SET OPTION-Statement Option DECRESULT
3. Im STRSQL kann man das soweit ich gesehen habe nicht setzen.
Birgitta
-
Wenn du im STRSQL die Werte vorher mit CAST definierst, funktioniert es auch.
Code:
SELECT cast (50.0000000000000000000 as dec (35, 30)) * cast
(20.00000000000000000000 as dec (35, 30))
from sysibm.sysdummy1
-
Bei großen Ergebnis/Zwischenfeldern war schon immer ein Cast erforderlich:
dec( dec(Wert1, n1, m1) * dec(Wert2, n2, m3), nE, mE)
Ggf. "round(Erg, m)" nicht vergessen, sonst wird abgeschnitten.
-
Okay, ich dachte schon, ich wäre zu blöde für ein einfaches Sql. Dann werde ich daraus mal eine "Casting-Show" machen.
@andreaspr@aon.at: Ich habe das SQL mit F9 wieder geholt, aber mit diesem Effekt kann ich gut leben, da zum Einen das Problem mit einem Cast ja weg ist und zum Anderen ich im "richtigen Leben" Felder multipliziere, welche sich nicht mal eben in der Größe ändern.
@B.Hauser: Ich bin immer noch gerne im guten, alten STRSQL unterwegs. Den gleichen Effekt konnte ich im Surveyer auch feststellen und daher habe ich dann andere Editoren nicht mehr versucht.
Vielen Dank für die schnellen Antworten und ein schönes Wochenende!
Markus
Similar Threads
-
By woki in forum NEWSboard Programmierung
Antworten: 3
Letzter Beitrag: 31-10-06, 10:21
-
By lyrics in forum IBM i Hauptforum
Antworten: 2
Letzter Beitrag: 24-08-06, 12:10
-
By loeweadolf in forum NEWSboard Programmierung
Antworten: 2
Letzter Beitrag: 01-06-06, 09:43
-
By Joe in forum NEWSboard Programmierung
Antworten: 2
Letzter Beitrag: 23-12-05, 07:43
-
By muadeep in forum IBM i Hauptforum
Antworten: 6
Letzter Beitrag: 27-07-05, 15:17
Tags for this Thread
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