in der JDBC Doku (Escaped scalar functions) ist beschrieben, welche escaped JDBC functions unterstützt werden. Dazu gehört auch die Funktion timestampadd, die ich aus Kompatibilitätsgründen mit einer anderen im Einsatz befindlichen Datenbank gerne verwenden würde. Leider ist in der Doku die genaue Syntax nicht beschrieben. Was bei anderen Datenbanken zum Erfolg führt (das statement unten funktioniert einwandfrei unter apache derby/java db) wird von PostgreSQL/pg-admin nicht akzeptiert. Kann mir jemand helfen, wie das statement geschrieben werden muss?
SELECT {fn timestampadd(SQL_TSI_MINUTE, “SysTimeOffset”, CURRENT_TIMESTAMP)} AS “ADate” FROM appl.“TBL_xxxx”;
Soweit kommt die Ausführung zwar nicht, aber mir ist ein weiterer Unterschied aufgefallen: der ‘argIntervalType value’ heisst SQL_TSI_FRAC_MINUTE (anstellen SQL_TSI_MINUTE).
********** Fehler **********
ERROR: syntax error at or near “{”
SQL Status:42601
Zeichen:8
Verwende PostgreSQL in der Version 8.3.9 auf Debian Linux, pg-admin 1.10.0 unter Windows als Query Editor.
Die JDBC Escape syntax funktioniert logischerweise nur mit JDBC (es wird vom JDBC Treiber durch die entsprechende “native” Funktion" ersetzt)
pgAdmin verwendet aber kein JDBC, also kann es dort nicht funktionieren.
Um die JDBC Escape Features zu nutzen musst Du ein Java/JDBC basiertes Query Tool verwenden.
Ich verwende kein Eclipse (bin NetBeans User) kenne deswegen die “Data Tools” nicht.
Aber nachdem Eclipse Java basiert ist, muss es wohl JDBC verwenden und dann sollte es damit auch funktionieren.
als Querytool für Derby verwende ich das zugehörige Werkzeug IJ.
Mit den eclipse data tools konnte ich das statement mit der escaped function gegen den PostgreSQL Server absetzen. Habe einen view definiert um zu sehen, in welche native Syntax das umgesetzt würde - Ergebnis
CREATE OR REPLACE VIEW appl.“ApplDate” AS
SELECT (((“TBL_ApplDate”.“SysTimeOffset” || ’ minute’::text)::interval) + now())::timestamp without time zone AS “ApplDate”
FROM appl.“xxx”;
Auch in Windows gibt es die viel beachtete Möglichkeit, Ereignisse zu bestimmten Zeiten anzustoßen. Das war imho schon ein paar mal Diskussionsthema. Einfach mal die Suchfunktion benutzen.
Vielleicht kann fristo das mal mit in die Windows FAQ aufnehmen?