0

我正在尝试将数据从 Netezza 插入 Oracle。这是我的插入内容,如下所示。但它们不起作用并抛出上述错误。

INSERT INTO AM_CTL_DDS_LOAD values('ALB',1002,'2012/02/12');
INSERT INTO AM_CTL_DDS_LOAD values('ALB',1002,'2012/02/09');
INSERT INTO AM_CTL_DDS_LOAD values('ALB',1002,'2012/02/21');
INSERT INTO AM_CTL_DDS_LOAD values('ALB',1002,'2012/02/23');

我的表结构如下。

CREATE TABLE AM_CTL_DDS_LOAD
(
    MAS_DIV_CD VARCHAR(5),
    LD_SEQ_NBR INTEGER NOT NULL,
    TUNING_DT DATE NOT NULL
);
4

1 回答 1

3

ORA-01861: literal does not match format string错误意味着表的第三列AM_CTL_DDS_LOAD被定义为 a DATE,而不是 a VARCHAR2,并且字符串到日期的隐式转换失败,因为您的会话NLS_DATE_FORMAT不是 'YYYY/MM/DD'。解决该问题的最佳方法是通过使用适当的格式掩码 显式调用来显式插入 aDATE而不是 a 。VARCHAR2TO_DATE

INSERT INTO AM_CTL_DDS_LOAD values('ALB',1002,to_date('2012/02/12', 'YYYY/MM/DD') );
INSERT INTO AM_CTL_DDS_LOAD values('ALB',1002,to_date('2012/02/09', 'YYYY/MM/DD') );
INSERT INTO AM_CTL_DDS_LOAD values('ALB',1002,to_date('2012/02/21', 'YYYY/MM/DD') );
INSERT INTO AM_CTL_DDS_LOAD values('ALB',1002,to_date('2012/02/23', 'YYYY/MM/DD') );
于 2012-05-15T20:17:17.697 回答