[NEWSboard IBMi Forum]
  1. #1
    Registriert seit
    Jan 2006
    Beiträge
    111

    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

  2. #2
    Registriert seit
    Jan 2001
    Beiträge
    833
    Hallo,

    ich kann jetzt nicht gucken,
    aber ist das nicht ein Bigdecimal ?

    Vielleicht probierst Du es mal
    Gruss
    Michael

  3. #3
    Registriert seit
    Feb 2001
    Beiträge
    20.241
    Wenn Java den Typ Currency unterstützt gehts damit.
    Ansonsten in SQL bereits mit "cast(MyFunction(...) as double) as MyName" aufrufen.
    Dienstleistungen? Die gibt es hier: http://www.fuerchau.de
    Das Excel-AddIn: https://www.ftsolutions.de/index.php/downloads
    BI? Da war doch noch was: http://www.ftsolutions.de

  4. #4
    Registriert seit
    Jan 2006
    Beiträge
    111
    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.




  5. #5
    Registriert seit
    Feb 2001
    Beiträge
    20.241
    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.
    Dienstleistungen? Die gibt es hier: http://www.fuerchau.de
    Das Excel-AddIn: https://www.ftsolutions.de/index.php/downloads
    BI? Da war doch noch was: http://www.ftsolutions.de

  6. #6
    Registriert seit
    Mar 2002
    Beiträge
    5.287
    Hallo,

    sieht mir eher nach der Function Implementierung aus.

    mfg

    Dieter Bender

    Zitat 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.
    AS400 Freeware
    http://www.bender-dv.de
    Mit embedded SQL in RPG auf Datenbanken von ADABAS bis XBASE zugreifen
    http://sourceforge.net/projects/appserver4rpg/

  7. #7
    Registriert seit
    Jan 2006
    Beiträge
    111
    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

  8. #8
    Registriert seit
    Feb 2001
    Beiträge
    20.241
    Das wundert mich in so weit, als dass es mit packed auch funktionieren müsste.
    Dienstleistungen? Die gibt es hier: http://www.fuerchau.de
    Das Excel-AddIn: https://www.ftsolutions.de/index.php/downloads
    BI? Da war doch noch was: http://www.ftsolutions.de

  9. #9
    Registriert seit
    Mar 2002
    Beiträge
    5.287
    ... nicht wenn die Implementierung der Function RPG ist und im Widerspruch zur Deklaration der Function steht

    mfg

    Dieter Bender

    Zitat Zitat von Fuerchau
    Das wundert mich in so weit, als dass es mit packed auch funktionieren müsste.
    AS400 Freeware
    http://www.bender-dv.de
    Mit embedded SQL in RPG auf Datenbanken von ADABAS bis XBASE zugreifen
    http://sourceforge.net/projects/appserver4rpg/

Similar Threads

  1. Migation RPG --> Java
    By anwenderi5 in forum IBM i Hauptforum
    Antworten: 4
    Letzter Beitrag: 14-01-09, 12:29
  2. Antworten: 3
    Letzter Beitrag: 06-06-06, 15:57
  3. FTP von der AS400 -> zum PC sehr langsam
    By ExAzubi in forum IBM i Hauptforum
    Antworten: 6
    Letzter Beitrag: 17-03-06, 09:26
  4. FTP AS400 -> AS400 -> PC
    By codierknecht in forum NEWSboard Programmierung
    Antworten: 11
    Letzter Beitrag: 07-10-05, 08:16
  5. AS400 --> Excel Time-Feld als Text umgesetzt
    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
  •