PDA

View Full Version : Timestamp als Parameter in STRQMQRY



Jenne
23-03-05, 07:53
Hallo Kollegen,
ich habe mit Strqry eine Abfrage erstellt in der ich ein Parameter übergeben möchte (Timestamp).
Wenn ich jetzt diese Abfrage mit STRQMQRY und Übergabe des Parameter starte.
===> STRQMQRY QMQRY(JENQRY/QRY_EISPZN) OUTPUT(*OUTFILE) OUTFILE(JENMONAT/EISPZN
2) NAMING(*SQL) ALWQRYDFN(*YES) SETVAR((DATETIME '2005-03-15-01.02.03.000001'))

bekomme ich immer folgende Fehlermeldung :

Token ,03 ungültig. Gültige Token: ) OR.

Leider finde ich nirgends eine Erklärung dafür was ich falsch mache.
Vielleicht kann mir einer helfen.

Danke im Voraus
Jenne

Fuerchau
23-03-05, 09:21
Wie sieht denn der SQL konkret aus ?
Verwendest du einen Query oder ein QM-Objekt ?

Jenne
23-03-05, 09:24
Hallo Fuerchau,

ich benutze ein QRY-Objekt.

Fuerchau
23-03-05, 09:29
Mach mal aus dem QRY ein QM-Objekt:
RTVQMQRY => Source-Datei
CRTQMQRY => QM-Objekt

Schau dir mal den SQL an.
Manchmal ist mir das auch nicht klar, aber ggf. verwende eine ":" als Zeittrennzeichen (Job-Einstellung).

Fuerchau
23-03-05, 09:35
Due benötigst ein CAST, der in QRY so ggf. nicht möglich ist:

timestamp('2005-03-15-12.00.00.000001')

bzw. in QM-SQL:
timestamp(&DATETIME)

also
STRQMQRY SETVAR((DATETIME '''2005-03-15-01.02.03.000001'''))

Beachte die Hochkomma, der Timestamp muss als Zeichenkette übergeben werden, da ansonsten Rechenoperationen angenommen werden:

2005 - 03 - 15 - 01.02.03.000001

Da SQL sowohl Komma als auch Punkt als Dezimaltrenner erkennt, ist die Zahl 01.02.03.000001 eben ab .03 falsch (2. Dezimalpunkt).

Jenne
23-03-05, 09:50
Das war es : Die 3 Hochkommas vor und nach dem Parameter.

jetzt hat es geklappt.

Recht herzlichen Dank Fuerchau.

Gruß und frohe Ostern
Jenne