[NEWSboard IBMi Forum]

Hybrid View

  1. #1
    Registriert seit
    Oct 2003
    Beiträge
    152

    substr bei SQL

    Kann es sein. daß ab Rel. V5R3 beim interaktiven SQL (strsql) substr mit numerischen Feldern möglich ist? Wir haben ein V5R2 und eine V5R3- Umgebung und bei V5R3 funktoiniert ein sql-update auf eine Datenbank-Datei mit eine Ausahl mittels substr auf ein Datumsfeld, bei V5R2-Umgebung nicht. Oder kann die Ursache eine andere sein??

  2. #2
    Registriert seit
    Feb 2001
    Beiträge
    20.695
    Kann sein, dass bei V5R3 einige automatische CAST's zusätzlich vorhanden sind.
    Allerdings sollte man sich auf sowas nie verlassen, sondern seine CAST immer salber spezifizieren.
    In diesem Fall also "SUBSTR(CHAR(MYDATE), pos, len)", wobei solche Sachen mit Vorsicht zu geniessen sind, da gerade Datumskonvertierungen stark von der Job-Umgebung bzw. SQL-Einstellung abhängig sind.
    Siehe beim STRSQL und F13->1 nach dem aktuellen Datumsformat !

    PS:
    Dafür gibts ja die Extract-Funktionen YEAR(MYDATE), MONTH(MYDATE) und DAY(MYDATE) um diesem Problem aus dem Weg zu gehen !!!
    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

  3. #3
    Registriert seit
    May 2002
    Beiträge
    1.121
    Schein wohl so zu sein. ich habe es gerade auf unserem system mit v5.3 probiert und es funzt.
    auf einem kundensystem mit 5.2 geht es net.
    muss wohl neu sein unter 5.3

    gruß ronald

  4. #4
    Registriert seit
    Feb 2001
    Beiträge
    20.695
    Vielleicht steht ja beim STRSQL in V5R3 nur der Default für das Datumformat jetzt auf *ISO ?

    PS:
    Ich habe ja auch V5R3 im Zugriff, aber bei mir wird beim SUBSTR gemeldet, dass eine Zeichenkette/Feld erforderlich ist !!!
    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

  5. #5
    Registriert seit
    Apr 2002
    Beiträge
    792
    Bei uns geht's unter V5R3 nicht ohne CHAR() allerdings auch nicht mit *ISO

  6. #6
    Registriert seit
    Oct 2003
    Beiträge
    152

    Unhappy

    Zitat Zitat von JonnyRico
    Bei uns geht's unter V5R3 nicht ohne CHAR() allerdings auch nicht mit *ISO
    Auf unserer 520 geht´s mit *DMY und mit *ISO. Das Feld steht im dspffd als packed (8,0). Auf der Kundenmaschine V5R2 geht´s weder mit *DMY oder *ISO. Seltsam. Ich werde mich mal an den IBM Softwareservice wenden. Ihr hört von mir!

  7. #7
    Registriert seit
    Apr 2002
    Beiträge
    792
    Zitat Zitat von oopsy-dear
    Auf unserer 520 geht´s mit *DMY und mit *ISO. Das Feld steht im dspffd als packed (8,0). Auf der Kundenmaschine V5R2 geht´s weder mit *DMY oder *ISO. Seltsam. Ich werde mich mal an den IBM Softwareservice wenden. Ihr hört von mir!
    Packed ist ja auch nicht Date.

  8. #8
    Registriert seit
    Feb 2001
    Beiträge
    20.695
    Ein IBM-Request ist da wohl nicht nötig (bevor man sich da lächerlich macht).
    Wenn ich aus einem dezimal 8,0 ein Datum machen muss, geht dies nur mittels cast:

    date(substr(digits(mynum), 1, 4) || '-' || substr(digits(mynum), 5, 2) || '-' || substr(digits(mynum), 7, 2))

    wenn das Format JJJJMMTT ist und ein gültiges Datum enthält.
    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
    May 2002
    Beiträge
    1.121
    hat bei mir eigentlich nix mit einem datums feld zu tun. ich habe willkürlich mal ein NUM-feld (7, 0) genommen.
    das problem ist nur, das er die zahl wohl intern in ein charfeld linksbündig ohne vornullen macht, so das ein umweg über digits wohl doch besser ist

    ronald


    am ende ist es villeleicht ja nur ein bug ??

  10. #10
    Registriert seit
    Feb 2001
    Beiträge
    20.695
    Ich sagte ja, mit automatischen CAST's sollte man vorsichtig umgehen.
    Aber es stimmt, numerische Felder werden automatisch gecastet.

    Da kann ich nur sagen: Dies wird zusätzliche Probleme aufwerfen, da mitumter das Ergebnis nicht das gewünschte sein wird. Ganz davon abgesehen, dass solche "Fehler" mitunter erst Tage/Wochen/Monate später festgestellt werden.

    Mit anderen Worten:
    "I's not a feature, it's a bug !"
    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

  11. #11
    Registriert seit
    Apr 2002
    Beiträge
    792
    Zitat Zitat von malzusrex
    hat bei mir eigentlich nix mit einem datums feld zu tun.
    Also bei einem Zahlenfeld funzt es bei mir auch aber mit Datum ohne CHAR keine Chance

Similar Threads

  1. RPGLE - SQL
    By christian_lettner in forum NEWSboard Programmierung
    Antworten: 2
    Letzter Beitrag: 16-11-06, 10:15
  2. SQL - Cursor vernichten ?!?
    By FNeurieser in forum NEWSboard Programmierung
    Antworten: 3
    Letzter Beitrag: 11-10-06, 14:53
  3. SQL UDF Function ausführung mit Fehler
    By jakarto in forum IBM i Hauptforum
    Antworten: 2
    Letzter Beitrag: 24-07-06, 13:41
  4. SQL - Fehler
    By Kaufmann in forum IBM i Hauptforum
    Antworten: 11
    Letzter Beitrag: 28-06-06, 14:11
  5. SQL .. for update of (RPG embedded SQL)
    By loeweadolf in forum NEWSboard Programmierung
    Antworten: 2
    Letzter Beitrag: 01-06-06, 09:43

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • You may not post attachments
  • You may not edit your posts
  •