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ß
vollbotz:
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!