[NEWSboard IBMi Forum]
Seite 2 von 2 Erste 1 2
  1. #13
    Registriert seit
    Sep 2011
    Beiträge
    20
    Hallo Birgitta,

    entschuldige die Unwissenheit eines Leien!!

    Hallo Andreas,

    sorry funktioniert leider immer noch nicht:
    (ODBC-Aufruf fehlgeschlagen [IBM] [System i Access ODBC-Treiber][DB2 für i5/OS]SQL0181-Wert in Datums-,Zeit-oder Zeitmarkenzeichenfolge ungültig.(#-181),
    aber ich glaube wir sind nah dran.
    Vielen Dank erstmal für Deine (Eure) Hilfe!!!

  2. #14
    Registriert seit
    Aug 2003
    Beiträge
    1.508
    Bei mir funktioniert es im Navigator.
    Eventuell hast du in der Spalte nicht durchgehend das Format CCYYMMDD??
    Lass dir mal den größten und niedrigsten Wert anzeigen.

    Select Min(BMDTEE ) From birdatv6.pbestlo
    Select Max(BMDTEE ) From birdatv6.pbestlo

  3. #15
    Registriert seit
    Aug 2001
    Beiträge
    2.928
    Zitat Zitat von svt Beitrag anzeigen
    SQL0181-Wert in Datums-,Zeit-oder Zeitmarkenzeichenfolge ungültig.(#-181)
    Dann habt Ihr numerische Werte, die sich nicht in ein Datum konvertieren lassen, z.B. 0 oder 20110229.

    In diesem Fall wäre es besser das Current_Date in einen numerischen Wert zu verwandeln.

    Das funktioniert wie folgt:
    Code:
    Dec(Replace(Char(Current_Date, ISO), '-', ''), 8 , 0)
    Oder falls Ihr auf Release 6.1 oder höher seid:
    Code:
    Dec(VarChar_Format(Current_Timestamp, 'YYYYMMDD'), 8, 0)
    Birgitta
    Birgitta Hauser

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

  4. #16
    Registriert seit
    Jan 2007
    Beiträge
    1.002
    OT

    Oder falls Ihr auf Release 7.1 oder höher seid:
    Uuiii Brigitta, müsste ich da was wissen?

    /OT
    kf

  5. #17
    Registriert seit
    Aug 2001
    Beiträge
    2.928
    Zitat Zitat von camouflage Beitrag anzeigen
    OT



    Uuiii Brigitta, müsste ich da was wissen?

    /OT
    ... Sorry kleiner Vertipper (die 6 liegt ja auch knapp neben der 7)!
    Außerdem haben wir für Release 7.1 inzwischen den 5. Technologie Review (TR) was auch fast 2 Releases gleichkommt

    Birgitta
    Birgitta Hauser

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

  6. #18
    Registriert seit
    Sep 2011
    Beiträge
    20

    Thumbs up geschafft!!!!!

    Hallo Ihr Zwei ,

    genau das war das Problem, es gab einen
    Datensatz (Wie das auch immer passiert ist ???) mit blank und deswegen hat es auch nicht funktioniert!!!!!
    Jetzt klappt es Prima, dank Eurer Hilfe
    nochmals Vielen Dank!!!!

    Aber eine kleine Frage habe ich noch,
    wenn ich den aktuellen Tag und den Tag
    davor haben möchte (-1) wie Frage ich das ab????

  7. #19
    Registriert seit
    Aug 2003
    Beiträge
    1.508

  8. #20
    Registriert seit
    Sep 2011
    Beiträge
    20

    Question Abfragezeit hat sich verzehtfacht!!!!

    Hallo AS/400 Freunde,

    seit dem ich meine Abfrage mit

    Code:
    AND Date(Trim (Char (TPDTE )) concat '000000') >Current Date -2 days
    abfrage benötige ich
    das vielfache an Zeit gegenüber früher:
    Code:
    AND TPDTE > '20121231'
    Wie kommt das bzw. wie kann man das
    wieder optimieren???

  9. #21
    Registriert seit
    Aug 2001
    Beiträge
    2.928
    Ich weiß nicht wo und wie Du das SQL-Statement einbindest bzw. aufrufst!

    Du solltest das numerische Tagesdatum - 2 Tage außerhalb des SQL Statements ermitteln und dann als (Host)Variable in das SQL-Statement einbinden.

    Code:
    AND TPDTE > :HostVarDate
    Sollte dies nicht möglich sein, solltest Du Dein Select-Statement dahingehend verändern, dass das numerische Datum direkt mit dem numerischen Wert des laufenden Datums - 2 Tage verglichen wird:

    Code:
    AND TPDTE > Dec(VarChar_Format(Current_Timestamp - 2 days, 'YYYYMMDD'), 8, 0)
    Vor Release 6.1 konnte der Query Optimizer nur Indices verwenden, die über Original-Spalten/Felder gebildet wurden.

    Sobald auf der linken Seite des Vergleichsoperators skalare Funktionen verwendet werden, wird die "Original"-Spalte verändert und der Query Optimizer kann für diese Spalte keinen Index mehr verwenden. Das kann dazuführen, dass anstatt eines Index-Access (Zugriff über Schlüssel) ein Table-Scan (ganze Tabelle wird gelesen) erfolgt.

    Ab 6.1 können Indices über "konstruierte" Felder gebildet werden, die dann u.U. auch vom Optimizer genutzt werden können (von IBM noch nicht vollständig realisiert!)

    Birgitta
    Birgitta Hauser

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

  10. #22
    Registriert seit
    Sep 2011
    Beiträge
    20
    Hallo Birgitt,

    wir haben Release 5, ich habe folgenden
    Code getestet:
    Code:
    AND TPDTE > Dec(VarChar_Format(Current_Timestamp - 2 days, 'YYYYMMDD'), 8, 0)
    Es kam die Fehlermeldung: "...SQL0171- Argument 2 der Funktion VarChar_Format ungültig"

    Die erste Variante interresiert mich sehr:
    Code:
    AND TPDTE > :HostVarDate
    Wenn ich das richtig verstehe kann ich das Vergleichs-Datum direkt aus einer Exceldatei (A1) ziehen. Das wäre genau mein Ding da ich mitlerweile diese gewünschten Daten über eine ODBC-Verbindung in Excel Abfrage!!!

    Mein Problem (da ich noch Anfänger bin!!!) ist, wie binde ich die Exceldatei (Zelle A1, mit den gewünschten Datum)
    in das SQL-Statement ein????
    Kannst Du mir hier helfen????
    Danke

  11. #23
    Registriert seit
    Feb 2001
    Beiträge
    20.696
    VarChar_Format gibt es in V5 noch nicht.
    Ich glaube, aber Replace müsste es schon geben:

    dec(replace(char(current date - 2 days, iso), '-', ''), 8, 0)

    Wenn das nich geht, kannst du natürlich in einer Excelzelle das Format als JJJJMMTT vorbereiten.

    In deiner Abfrage verwendest du dann ein "?" als Parameter.
    Über die Abfrageeigenschaften kannst du dann jedem Parameter eine Excel-Zelle zuweisen.
    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

  12. #24
    Registriert seit
    Sep 2011
    Beiträge
    20

    Red face

    Hallo Fuerchau,

    danke für deinen Tip funktioniert auch
    aber dauert auch extrem lange. Das mit
    den "?" als Parameter habe ich leider nicht
    hinbekommen, kannst Du mir als Laien das genauer erklären????

    Danke

Similar Threads

  1. JDBC Abfrage mit DB-Tool , SQL0901 Fehler
    By COS in forum IBM i Hauptforum
    Antworten: 3
    Letzter Beitrag: 17-11-08, 08:13
  2. CREATE FUNCTION mit select im Bauch ?
    By cheffe1008 in forum NEWSboard Programmierung
    Antworten: 4
    Letzter Beitrag: 21-09-06, 16:05
  3. Triggersyntax erzeugt nur Fehler
    By deni87991 in forum IBM i Hauptforum
    Antworten: 2
    Letzter Beitrag: 24-08-06, 10:05
  4. Fehler im SQL bzw. Joblog
    By GraueEminenz in forum NEWSboard Programmierung
    Antworten: 1
    Letzter Beitrag: 10-07-06, 11:58
  5. Cobol-Programm mit Embedded SQL (SELECT CASE)
    By klausgkv in forum NEWSboard Programmierung
    Antworten: 8
    Letzter Beitrag: 08-06-06, 13:47

Berechtigungen

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