Ich erhalte diesen Fehler beim Ausführen dieses Java / JDBC-Codes. Irgendwelche Ideen, wie man es umgehen kann?
Scheint sich über den Parameter in der Funktion date_trunc zu beschweren?
org.postgresql.util.PSQLException: FEHLER: Syntaxfehler bei oder in der Nähe von "$ 1" Position: 100
%Vor%Java-Code:
%Vor%resultierende Abfrage, die in pgAdmin in Ordnung ausgeführt wird:
%Vor% Bei Verwendung der Syntax type 'string'
in timestamp '2014-11-11 -05:00:00'
muss der angegebene Wert eine Konstante und kein Parameter sein. Es wird von der SQL-Engine in der Parse-Phase interpretiert und in eine interne Timestamp-Darstellung konvertiert, bevor die tatsächliche Ausführung stattfindet und bevor die Werte für die Parameter bekannt sind.
Wenn also timestamp
auftritt, erzeugt der Parser einen Syntaxfehler, weil keine literale Zeichenfolge ist.
Auf der anderen Seite wird der Wert von cast( as timestamp)
bei Ausführung erzeugt, also sollte dies verwendet werden.
Was die Syntax aus der Sicht von JDBC angeht, sollte cast(? as timestamp)
in Ordnung sein. Die PostgreSQL-spezifische Syntax ?::timestamp
mit doppelten Doppelpunkten funktioniert wahrscheinlich ebenfalls.
Tags und Links java postgresql jdbc