Insert Into mit Doppelpunkt: SQL Status:42601

Guude,
ich verschiebe Daten von Oracle nach Postgres.
ich möchte ein datum per insert into (datumsformatierung vorgegeben aus Oracle 11) in meine Datenbank einfügen.

Tabelle import:
CREATE TABLE import
( id numeric(22,0),
datum date ) ;

SQL:
INSERT INTO import (“FA_FLAECHEN_ID”, “FA_DAT_ROD_PFLA”)
VALUES (1, 1986-01-01 00:00:00.000000 +01:00:00)

→ Ich bekomme aber immer eine Fehlermeldung: SQL Status:42601

Als Fehlerquelle wird 00:00:00 angegeben…

Ich habe jetzt alle möglichen Feldtypen (timestamp, varchar, text usw) ausgetestet, die Fehlermeldung bleibt gleich.

Was kann ich tun? Woran liegt das ??

Gibts hier nen Trick??

Danke schonmal und Gruß

Du wirst aus dem String das Datum extrahieren müssen, z.B. mit to_date:

test=*# select to_date('1986-01-01 00:00:00.000000 +01:00:00','yyyy-mm-DD hh24:mi:ss');
  to_date
------------
 1986-01-01
(1 row)

Ein timestamp muss in einfachen Anführungszeichen stehen:

INSERT INTO import ("FA_FLAECHEN_ID", "FA_DAT_ROD_PFLA")
VALUES (1, timestamp '1986-01-01 00:00:00.000000 +01:00:00');

(Das geht davon aus, dass die Spalte als timestamp definiert wurde

Details zum Format von Konstanten finden sich im Handbuch: http://www.postgresql.org/docs/current/static/datatype-datetime.html

Ich würde übrigens empfehlen quoted identifiers wie “FA_FLAECHEN_ID” zu vermeiden. Im Regelfall erzeugt sowas mehr Probleme als es Vorteile bietet.

Danke schonmal!

Das blöde an der Sache: Ich nutzte TalendOpenStudio um ein Export-Skript zu erzeugen.
Dieses Tool gibt mir das angezeigte SQL-Statement aus…

-> Muss dann wohl mal bei TalendOpenStudio weiter nachschauen…

Alla!