-
Packed Decimal (AS400) -> Java Double
Moin Kollegens',
vielleicht weiß jemand von Euch Rat !?
Über eine Function ermittle ich mir einen Wert (DEC (10 , 2))... aber wenn ich diesen aus einem SQL Resultset in einer Javaumgebung auslese und per
objRSet.getDouble(AS400Feld im Resultset) auslese, gibt's ne Number Format Exception.
Low-order nibble of the byte at array offset 1708 is not valid. Byte value: 00
Weiß jemand wie ich den Decimalwert 10,2 vernünftig in einen Double umwandeln kann ?
Gruß
Maxx
-
Hallo,
ich kann jetzt nicht gucken,
aber ist das nicht ein Bigdecimal ?
Vielleicht probierst Du es mal
Gruss
Michael
-
Wenn Java den Typ Currency unterstützt gehts damit.
Ansonsten in SQL bereits mit "cast(MyFunction(...) as double) as MyName" aufrufen.
-
Hallo,
danke für die Vorschläge !!!!
BigDecimal geht nicht - gleicher fehler mit den Bytes....
Lösung 2 - Cast als Double:
SELECT JLMTAB.CLAIMS_P.*, CAST(PGM.FU083(MANDANT, KOMNR, CHAR(SUBSTRING(ERSTELL_AM, 1, 8))) as double) as JLM_AUFBTR FROM JLMTAB.CLAIMS_P WHERE ....
--> SQL Exception:
java.sql.SQLException: [SQL0904] Ressourcengrenze überschritten. Ursache . . . . : Die Ressourcengrenze der Art 13 wurde überschritten. Es gibt folgende Arten von Grenzen: -- Fehlerart 1 gibt an, dass die Speichergrenze des Benutzerprofils oder die Maschinenspeichergrenze überschritten wurde. -- Fehlerart 2 gibt an, dass die Maschinensperrengrenze überschritten wurde. -- Fehlerart 3 gibt an, dass die Abfrageressourcengrenze überschritten wurde. Weitere Informationen enthält die Nachricht CPD4365. -- Fehlerart 4 gibt an, dass ein Journalfehler aufgetreten ist. -- Fehlerart 5 gibt an, dass der COMMIT-Sperrengrenzwert überschritten wurde. -- Fehlerart 6 gibt an, dass die maximal zulässige Größe der Tabelle erreicht wurde. -- Fehlerart 7 gibt an, dass die maximal zulässige Größe des vorbereiteten Anwendungsbereichs erreicht wurde. -- Fehlerart 8 gibt an, dass die maximal zulässige Anzahl Cursor für diesen Job geöffnet wurde. -- Fehlerart 9 gibt an, dass die maximal zulässige Anzahl Einträge in der Sperrentabelle für diesen Job verwendet wurde. -- Fehlerart 12 gibt an, dass die maximale DRDA-DFV-Puffergröße überschritten wurde. -- Fehlerart 13 gibt an, dass die maximal zulässige Menge an geblockten Daten überschritten wurde. Fehlerbeseitigung: Einen der folgenden Schritte durchführen: Bei Fehlerart 1 den Sicherheitsbeauftragten bitten, die Speichergrenze des Benutzerprofils zu vergrößern, oder einige Objekte löschen, um Speicherplatz freizugeben. Anschließend die Anforderung wiederholen. -- Bei Fehlerart 2 die Operation anfordern, nachdem die Anzahl der aktiven Maschinensperren verringert wurde. -- Bei Fehlerart 3, 4 oder 5 die Maßnahmen zur Fehlerbeseitigung den vorherigen Nachrichten im Jobprotokoll entnehmen. -- Bei Fehlerart 6 müssen einige Zeilen aus dieser Tabelle in eine andere Tabelle übertragen werden. -- Bei Fehlerart 7 muss zunächst eine Anweisung COMMIT oder ROLLBACK ohne Klausel HOLD ausgegeben werden, bevor weitere Anweisungen PREPARE ausgegeben werden können. -- Bei Fehlerart 8 eine Anweisung CLOSE ausgeben, bevor weitere Anweisungen OPEN ausgegeben werden. -- Bei Fehlerart 9 eine Anweisung COMMIT oder ROLLBACK ohne die Klausel HOLD ausgeben. -- Bei Fehlerart 12 die Gesamtgröße der mit der SQL-Anforderung bereitgestellten Spaltendaten verringern. -- Bei Fehlerart 13 die Anzahl der Zeilen in dem Block reduzieren.
-
Ich denke das muss mit der Funktionsdeklaration zu tun haben.
Probiers doch erst mal mit STRSQL aus, ggf. vorher STRDBG um Diagnose-Nachricht im Joblog zu prüfen.
-
Hallo,
sieht mir eher nach der Function Implementierung aus.
mfg
Dieter Bender
![Zitat](images/misc/quote_icon.png) Zitat von Fuerchau
Ich denke das muss mit der Funktionsdeklaration zu tun haben.
Probiers doch erst mal mit STRSQL aus, ggf. vorher STRDBG um Diagnose-Nachricht im Joblog zu prüfen.
-
Vielen Dank Baldur !
Habe den Rückgabewert der Function auf NUMERIC geändert und die Prozedurschnittstelle
vorher 10 2
auf
10S 2 geändert....
jetzt funktioniert der Cast nach Double einwandfrei !
Danke..
Gruß
Maxx
-
Das wundert mich in so weit, als dass es mit packed auch funktionieren müsste.
-
... nicht wenn die Implementierung der Function RPG ist und im Widerspruch zur Deklaration der Function steht
mfg
Dieter Bender
![Zitat](images/misc/quote_icon.png) Zitat von Fuerchau
Das wundert mich in so weit, als dass es mit packed auch funktionieren müsste.
Similar Threads
-
By anwenderi5 in forum IBM i Hauptforum
Antworten: 4
Letzter Beitrag: 14-01-09, 12:29
-
By woki in forum NEWSboard Java
Antworten: 3
Letzter Beitrag: 06-06-06, 15:57
-
By ExAzubi in forum IBM i Hauptforum
Antworten: 6
Letzter Beitrag: 17-03-06, 09:26
-
By codierknecht in forum NEWSboard Programmierung
Antworten: 11
Letzter Beitrag: 07-10-05, 08:16
-
By rebe in forum NEWSboard Programmierung
Antworten: 2
Letzter Beitrag: 11-08-05, 08:15
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