我正在尝试将数据从Netezza插入到Oracle.Here是我的插入,如下所示。但是它们不起作用并向我提出上述错误。
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
);
答案 0 :(得分:3)
ORA-01861: literal does not match format string
错误意味着AM_CTL_DDS_LOAD
表的第三列被定义为DATE
,而不是VARCHAR2
,并且字符串的隐式转换为日期失败,因为您的会话NLS_DATE_FORMAT
不是'YYYY / MM / DD'。解决问题的最佳方法是通过使用适当的格式掩码显式调用DATE
来显式插入VARCHAR2
而不是TO_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') );