Verwendung der jdbc escaped function timestampadd

Hallo,

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.

Danke

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.

Hallo,

Danke für die Erklärung. Welche Query Tools sind denn JDBC basiert - evtl. die data tools platform in eclipse?

Gruss

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.

Ansonsten sind hier noch welche gelistet:
Community Guide to PostgreSQL GUI Tools - PostgreSQL Wiki

Welches Tool hast Du denn für Derby verwendet?

Hallo,

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”;

Damit sind alle Fragen die ich hatte beantwortet.

Gruss

thanks for sharing link here

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?

Und was genau hat das jetzt mit der Frage nach JDBC Funktionen zu tun?