[NEWSboard IBMi Forum]
  1. #1
    Registriert seit
    Aug 2006
    Beiträge
    2.081

    SQL Fehlersuche Behebungsstrategie

    Hallo *all,

    ich habe hier eine simple Abfrage die auf die Nase fällt.

    select * from stddat where wrtdat = (current date)

    Fehlermeldung ist:
    Ursache . . . . : Die Abfrage wurde nicht ausgeführt, da ein
    Vergleichsoperand auf Daten aus Feld *N (in Satz 6246 der Datei STDDAT in
    Bibliothek XXX, die nicht gleich *N sind,) zugreift. Die Daten aus Feld *N
    sind nicht notwendigerweise falsch, da es sich bei dem Operanden
    möglicherweise um einen Ausdruck handelt, der neben Feld *N auch andere...

    und

    SELECT/OMIT-Fehler in Feld (Cast((Has Date/Time
    formatting)DbopExprKey(MEST08, STDDAT_1.WRTDAT¬158|, 7), Char Fixed Len
    8 Pad(x40,x4040)) AS Date), Teildatei STDDAT.

    Tja, das sieht dann so aus das im Satz 6246 kein Datum drin steht.
    Meine Frage,
    wie kann ich gezielt den Satz 6246 abfragen bzw. was müßte ich tun damit der select trotzdem läuft evtl. unter Auslassung des/der fehlerhaften Sätze.

    GG

  2. #2
    Registriert seit
    Mar 2002
    Beiträge
    5.291
    http://www.think400.dk/files/idate.zip
    könnte dein Freund sein (ich habe es nicht probiert, bei mir gibt es keine Huddelfelder mit Dadümmern)

    D*B
    AS400 Freeware
    http://www.bender-dv.de
    Mit embedded SQL in RPG auf Datenbanken von ADABAS bis XBASE zugreifen
    http://sourceforge.net/projects/appserver4rpg/

  3. #3
    Registriert seit
    Aug 2006
    Beiträge
    2.081
    Danke für die Kanone, aber gibt es auch ne andere Möglichkeit den Spatz zu erwischen?

    Wobei ich habe mir die Daten jetzt nochmals angesehen und dort steht:

    RRN ( STDDAT ) WrtDat
    6.246 20100803

    Das müßte doch passen oder?

    GG

  4. #4
    Registriert seit
    Aug 2001
    Beiträge
    2.879
    WRTDAT ist ein numerischer Wert oder ein alphanumerischer Wert, während CURRENT_DATE ein echtes Datum ist.

    Du musst entweder WRTDAT in ein echtes Datum verwandeln oder Current_Date in einen numerischen oder alphanumerisch Vergleichswert.

    Birgitta
    Birgitta Hauser

    Anwendungsmodernisierung, Beratung, Schulungen, Programmierung im Bereich RPG, SQL und Datenbank
    IBM Champion seit 2020 - 4. Jahr in Folge
    Birgitta Hauser - Modernization - Education - Consulting on IBM i

  5. #5
    Registriert seit
    Aug 2003
    Beiträge
    1.508
    Ich weis nicht ob sich die Satznummer 6246 auf die RRN bezieht.
    Probier mal eine Abfrage mit
    Where WrtDat < 19000000 and WrtDat >2100000 and WrtDat is null

    Eventuell dass NULL-Werte erlaubt sind und diese Probleme machen?

  6. #6
    Registriert seit
    Mar 2002
    Beiträge
    5.291
    @passen: 2010-08-03 würde für automatischen cast passen, ohne Trennstriche eben nicht
    @Kanone: wenn der Spatz überspringen heißt, dann geht das nicht ohne eine eigene UDF

    D*B

    Zitat Zitat von KingofKning Beitrag anzeigen
    Danke für die Kanone, aber gibt es auch ne andere Möglichkeit den Spatz zu erwischen?

    Wobei ich habe mir die Daten jetzt nochmals angesehen und dort steht:

    RRN ( STDDAT ) WrtDat
    6.246 20100803

    Das müßte doch passen oder?

    GG
    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
    Feb 2001
    Beiträge
    20.281
    Immer wieder die selbe Frage aber anders formuliert.
    Ein Datum kann nur abgefragt werden, wenn das Format links und rechts passt.
    Als entweder das Feld in ein Datum umwandeln oder den Vergleichswert in eine Zahl:

    a)
    date(
    substr(digits(datefield), 1, 4) concat '-' concat
    substr(digits(datefield), 5, 2) concat '-' concat
    substr(digits(datefield), 7, 2)
    ) = current date

    b)
    datefield =
    year(current date) * 10000 +
    month(current date) * 100 +
    day(current date)
    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

  8. #8
    Registriert seit
    Mar 2002
    Beiträge
    5.291
    ... triffts nicht, es gibt durchaus implizite Konvertierungen. der casus knaxus ist, ob die Konvertierung gelingt, wenn man dem Cast Schotter anbietet, geht es eben wieder in den Wind - da eiert DB2/400 ziemlich rum, weshalb es jetzt wohl auch DB2 for I heißt.

    D*B

    Zitat Zitat von Fuerchau Beitrag anzeigen
    Immer wieder die selbe Frage aber anders formuliert.
    Ein Datum kann nur abgefragt werden, wenn das Format links und rechts passt.
    Als entweder das Feld in ein Datum umwandeln oder den Vergleichswert in eine Zahl:

    a)
    date(
    substr(digits(datefield), 1, 4) concat '-' concat
    substr(digits(datefield), 5, 2) concat '-' concat
    substr(digits(datefield), 7, 2)
    ) = current date

    b)
    datefield =
    year(current date) * 10000 +
    month(current date) * 100 +
    day(current date)
    AS400 Freeware
    http://www.bender-dv.de
    Mit embedded SQL in RPG auf Datenbanken von ADABAS bis XBASE zugreifen
    http://sourceforge.net/projects/appserver4rpg/

  9. #9
    Registriert seit
    Aug 2006
    Beiträge
    2.081
    Zitat Zitat von Fuerchau Beitrag anzeigen
    Immer wieder die selbe Frage aber anders formuliert.
    Ein Datum kann nur abgefragt werden, wenn das Format links und rechts passt.
    Du hast Recht, aber meiner Meinung nach ist das auch ein Problem des Suchen und des Finden.
    Hier im Forum sind viele Antworten schon mal gegeben worden, aber wenn Du als Anfänger nicht weißt wonach Du suchen sollst und nur z.B. Datum eingibst brauchst man sich nicht über 1.000 Antworten zu wundern wovon 999 nicht das sind was man braucht.

    Vielleicht sollte man mal Holgers Wikipedia aufrüsten um solche Probleme mit Lösungen sauber zu hinterlegen.

    Aber wer machts, wer koordiniert es und wie lange wirds gemacht.........

    So muß man halt Verständnis haben das die eine oder andere Frage schon mal so ähnlich gestellt wurde und trotzdem der Fragesteller die richtige Antwort nicht findet.

    Aber Gott sei Dank herrscht hier im Forum ein vernünftiger Ton und die Hinweise sind meistens fundiert und blöde Kommentare extrem selten.

    GG

    Der sein Problem dank Forum gelöst hat.

  10. #10
    Registriert seit
    Jul 2001
    Beiträge
    2.651
    Zitat Zitat von KingofKning Beitrag anzeigen
    Vielleicht sollte man mal Holgers Wikipedia aufrüsten um solche Probleme mit Lösungen sauber zu hinterlegen.
    Aber wer machts, wer koordiniert es und wie lange wirds gemacht.........
    Nicht fragen, wer es macht, sondern machen. Mein Zeitbudget gibt derzeit halt nix her.

    -h

  11. #11
    Registriert seit
    Jul 2005
    Beiträge
    1.053
    Zitat Zitat von holgerscherer Beitrag anzeigen
    Nicht fragen, wer es macht, sondern machen. Mein Zeitbudget gibt derzeit halt nix her.

    -h
    Wo wir schon dabei sind

    Ich wollte was zum 9348 schreiben - unter welche Kategorie gehörst es in dein Wiki

    Gruß as400.lehrling

  12. #12
    Registriert seit
    Jul 2001
    Beiträge
    2.651
    Zitat Zitat von AS400.lehrling Beitrag anzeigen
    Wo wir schon dabei sind

    Ich wollte was zum 9348 schreiben - unter welche Kategorie gehörst es in dein Wiki

    Gruß as400.lehrling
    Notfalls erst mal einen Artikel mit dem Namen (äh Nummer) des Feature anlegen und hier einfügen

    HTML-Code:
    http://www.as400wiki.de/index.php/Feature
    -h

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 und OBJLCK
    By malzusrex in forum IBM i Hauptforum
    Antworten: 8
    Letzter Beitrag: 19-09-06, 11:04
  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
  •