ORA-00984:这里不允许列

Geo*_*phy 31 oracle oracle10g

我正在做一个简单的Oracle INSERT,我一直收到这个错误: [Err] ORA-00984: column not allowed here

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
)
Run Code Online (Sandbox Code Playgroud)

Qua*_*noi 63

用单个引号替换双引号:

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
       )
Run Code Online (Sandbox Code Playgroud)

在SQL中,双引号用于标记标识符,而不是字符串常量.

  • 这几乎肯定是因为`logdate`是一个_date_ @George,你试图插入一个_character_.您需要使用[TO_DATE()](http://docs.oracle.com/cd/E11882_01/server.112/e26088/functions203.htm#SQLRF06132)将其转换为日期,请参阅http:// stackoverflow .com/questions/10178292/comparison-dates-in-oracle-sql/10178346#10178346或http://stackoverflow.com/questions/11883923/converting-number-to-date-in-oracle/11884028#11884028或数百别人的... (4认同)