-
SQL0418 Fehler - Parametermarkierung
Hallo Forum,
folgendes SQL-Statement funzt auf der AS wunderbar. Es geht um eine Datumsauswahl von 5 Tagen.
Unter Java mit SQLJ erhalte ich bei der
Ausführung folgenden Fehler:
"java.sql.SQLException: [SQL0418] Verwendung von Parametermarkierungen ungültig."
Weiss jemand wo der Fehler liegt? Danke...
SQL-Statement:
#sql rs = { select F1, F2
FROM bibl1.file1
WHERE F1 = '01' and
F2 = '1' and
F3 = 0 and
DATE('2009' concat '-' concat Substr(Digits(DATUM), 3, 2) concat '-' concat Substr(Digits(DATUM), 1, 2))
between CURDATE() and (CURDATE() + 5 DAYS)
ORDER BY Substr(Digits(DATUM), 3, 2),
Substr(Digits(DATUM), 1, 2)
};
Viele Grüße
-
Hallo;
ich nehme an, dass CURDATE und/oder CURDATE + 5 DAYS den Fehler verursachen.
Versuche folgendes:
1. Verwende anstatt CURDATE Current_Date. (Ich vermute allerdings, das dies auch nicht zum Erfolg führt.)
2. Ermittle das Tagesdatum und das Ende-Datum vorab. Bereite beides als alphnumerischen String auf und binde diese Ergebnisse ein.
Birgitta
-
Ich hoffe die "{}" gehören NICHT zum SQL-Befehl dazu.
"{}" initiieren eigentlich einen Procedure-Call.
-
Hallo,
it depends on release!
Parameter Marker Unterstützung auf der AS/400 ist ein leidiges Thema, die Datenbank kann da einiges nicht, was andere (auch DB2, soviel zu UDB, was ja auch wieder out ist) können, bereits der CONCAT ist problematisch. Manchmal hilft ein (eigentlich unsinniger) Cast. Zur weiteren Analyse würde ich nacheinander die Bedingungen und den order by reduzieren, um die Bruchstelle zu finden. Es kann aber durchaus sein, dass dieses Statement mit SQLJ nicht gegen die Datenbank zu kriegen ist.
Dieter Bender
Zitat von edig
Hallo Forum,
folgendes SQL-Statement funzt auf der AS wunderbar. Es geht um eine Datumsauswahl von 5 Tagen.
Unter Java mit SQLJ erhalte ich bei der
Ausführung folgenden Fehler:
"java.sql.SQLException: [SQL0418] Verwendung von Parametermarkierungen ungültig."
Weiss jemand wo der Fehler liegt? Danke...
SQL-Statement:
#sql rs = { select F1, F2
FROM bibl1.file1
WHERE F1 = '01' and
F2 = '1' and
F3 = 0 and
DATE('2009' concat '-' concat Substr(Digits(DATUM), 3, 2) concat '-' concat Substr(Digits(DATUM), 1, 2))
between CURDATE() and (CURDATE() + 5 DAYS)
ORDER BY Substr(Digits(DATUM), 3, 2),
Substr(Digits(DATUM), 1, 2)
};
Viele Grüße
-
Danke für die Eure Hilfe!
Habe die Lösung:
#sql rs = { select F1, F2
FROM bibl1.file1l
WHERE F1 = '01' and
F2 = '1' and
F3 = 0 and
Date(YEAR(CURRENT DATE) concat '-' concat Substr(Digits(DATUM), 3, 2) concat '-' concat Substr(Digits(DATUM), 1, 2))
between CURRENT DATE and (CURRENT DATE + 5 DAYS)
ORDER BY Substr(Digits(DATUM), 3, 2),
Substr(Digits(DATUM), 1, 2)
};
Schöne Grüße
Similar Threads
-
By Robi in forum IBM i Hauptforum
Antworten: 10
Letzter Beitrag: 04-11-06, 16:02
-
By sysopr in forum IBM i Hauptforum
Antworten: 3
Letzter Beitrag: 23-08-06, 14:10
-
By deni87991 in forum IBM i Hauptforum
Antworten: 11
Letzter Beitrag: 08-08-06, 13:50
-
By GraueEminenz in forum NEWSboard Programmierung
Antworten: 1
Letzter Beitrag: 10-07-06, 11:58
-
By Hubert in forum IBM i Hauptforum
Antworten: 4
Letzter Beitrag: 10-05-06, 09:41
Berechtigungen
- Neue Themen erstellen: Nein
- Themen beantworten: Nein
- You may not post attachments
- You may not edit your posts
-
Foren-Regeln
|
Erweiterte Foren Suche
Google Foren Suche
Forum & Artikel Update eMail
AS/400 / IBM i
Server Expert Gruppen
Unternehmens IT
|
Kategorien online Artikel
- Big Data, Analytics, BI, MIS
- Cloud, Social Media, Devices
- DMS, Archivierung, Druck
- ERP + Add-ons, Business Software
- Hochverfügbarkeit
- Human Resources, Personal
- IBM Announcements
- IT-Karikaturen
- Leitartikel
- Load`n`go
- Messen, Veranstaltungen
- NEWSolutions Dossiers
- Programmierung
- Security
- Software Development + Change Mgmt.
- Solutions & Provider
- Speicher – Storage
- Strategische Berichte
- Systemmanagement
- Tools, Hot-Tips
Auf dem Laufenden bleiben
|
Bookmarks