-
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 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 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