2016-06-20 8 views
-1

paßt Ich habe eine leere Tabelle erstellt - in meiner Website, die eine Reihe von tables-- hält, die die folgenden Spalten/Datentypen haben:SQL - wörtlich nicht Formatstring in INSERT INTO

NAMEN - VARCHAR2

MRN - NUMBER

DATE_S - DATUM

E - DATUM

DELI - DATUM

WB - VARCHAR2

ST_ID - VARCHAR2

KOMMENTAR --VARCHAR2

EI - NUMBER

Unten ist eine von fast 800 Zeilen von Code, den ich die Tabelle füllen bin mit .

INSERT INTO SANDBOX.W_C VALUES ('S,E',11300033,'2012-02-18 00:00:00','2012-03-01 00:00:00','2013-02-18 00:00:00','N','006i',NULL,NULL); 

Als ich dieses Stück Code ausführen bekomme ich die folgende Meldung: literal does not match format string. Was mache ich falsch?

+0

Mögliche Duplikat [Einfache Oracle-Abfrage: wörtliche nicht Formatstring übereinstimmen] (http: // Stackoverflow .com/questions/4884071/simple-oracle-query-literal-does-not-match-format-string) –

+0

@PaulL Ich habe diese Frage gesehen, aber ich verstehe immer noch nicht, was mit meinem Code nicht stimmt. –

+0

Was mit dem Code falsch ist, ist genau das, was mit dem Code des anderen Fragestellers falsch war - Sie müssen die 'to_date'-Funktion verwenden. –

Antwort

1

Wenn Sie ein Datum als String liefern, die Datenbank verwendet es Standardeinstellungen ist zu versuchen, die Zeichenfolge zu konvertieren. Der beste Weg, dies zu handhaben, ist die Verwendung von to_date, wie in der Antwort von scaisEdge.

Sie können aber auch die Standarddatumsmaske alter session Verwendung ändern, bevor Sie die insert Anweisungen ausführen:

ALTER SESSION SET NLS_DATE_FORMAT='yyyy-mm-dd hh24:mi:ss'; 
2

Sie benötigen TO_DATE

INSERT INTO SANDBOX.W_C VALUES ('S,E',11300033, 
    TO_DATE('2012-02-18', 'yyyy-mm-dd'), 
    TO_DATE('2012-03-01', 'yyyy-mm-dd'), 
    TO_DATE('2013-02-18', 'yyyy-mm-dd'),'N','006i',NULL,NULL); 
+0

gibt es einen schnelleren Weg - ich habe fast 800 Zeilen ähnlich 'INSERT INTO ...' Code –

+0

Mit einem guten Editor ist eine einfache Aufgabe. – scaisEdge

+0

Der schnellere Weg ist den Wert in Dummy-Tabelle mit der Datumsspalte wie Varchar einfügen und dann füllen Sie die rechte Tabelle mit einer Auswahl, die das Varchar in Datum konvertieren. – scaisEdge