2013-06-11 9 views
19

Ich bin eine einfache Oracle INSERT tun und ich erhalte immer diese Fehlermeldung: [Err] ORA-00984: column not allowed hereORA-00984: Spalte hier nicht erlaubt

INSERT INTO MY.LOGFILE 
(id,severity,category,logdate,appendername,message,extrainfo) 
VALUES 
(
"dee205e29ec34", 
"FATAL", 
"facade.uploader.model", 
"2013-06-11 17:16:31", 
"LOGDB", 
NULL, 
NULL 
) 
+4

Verwenden Sie einfache Anführungszeichen (Apostrophe) um Zeichenfolgenliterale, z. 'TÖDLICH'. Doppelte Anführungszeichen werden optional (selten) um Kennungen wie Spaltennamen verwendet. –

Antwort

46

doppelte Anführungszeichen ersetzen mit Einzel diejenigen:

INSERT 
INTO MY.LOGFILE 
     (id,severity,category,logdate,appendername,message,extrainfo) 
VALUES (
     'dee205e29ec34', 
     'FATAL', 
     'facade.uploader.model', 
     '2013-06-11 17:16:31', 
     'LOGDB', 
     NULL, 
     NULL 
     ) 

In SQL werden doppelte Anführungszeichen verwendet, um Bezeichner und nicht Zeichenfolgenkonstanten zu markieren.

+0

Das ist der Fehler, den ich jetzt bekomme. ORA-01861: Literal stimmt nicht mit Format-String überein –

+0

@GeorgeMurphy: bitte posten Sie Ihre Tabellendefinition. – Quassnoi

+3

Das ist fast definitiv, weil 'logdate' ein _date_ @George ist, Sie versuchen, ein _character_ einzufügen. Sie müssen es mit [TO_DATE()] (http://docs.oracle.com/cd/E11882_01/server.112/e26088/functions203.htm#SQLRF06132) in ein Datum umwandeln, sehen Sie etwas wie http: // stackoverflow .com/questions/10178292/comparing-dates-in-oracle-sql/10178346 # 10178346 oder http://stackoverflow.com/questions/11883923/converting-number-to-date-in-oracle/11884028#11884028 oder Hunderte von Anderen... – Ben

Verwandte Themen