Oracle SQL - 文字不匹配字符串?插入数据


create table orders(
    ord_id numeric(5) primary key,
    purch_Atm float(8),
    ord_date date,
    Customer_id Numeric(5),
    foreign key (customer_id) references customer1 (customer_id),
    Salesman_id Numeric(5),
    foreign key (Salesman_id) references salesman(Salesman_id))
insert into orders values (70001,150.5,'2012-10-05',3005,5002);
insert into orders values (70009,270.65,'2012-09-10',3001,5005);
insert into orders values (70002,65.26,'2012-10-05',3002,5001);
insert into orders values (70004,110.5,'2012-08-17',3009,5003);
insert into orders values (70007,948.5,'2012-09-10',3005,5002);
insert into orders values (70005,2400.6,'2012-07-27',3007,5001);
insert into orders values (70008,5760,'2012-09-10',3002,5001);
insert into orders values (70010,1983.2,'2012-10-10',3004,5006);
insert into orders values (70003,2480.4,'2012-10-10',3009,5003);
insert into orders values (70012,250.45,'2012-06-27',3008,5002);
insert into orders values (70011,75.29,'2012-08-17',3003,5007);
insert into orders values (70013,3045.6,'2012-04-25',3002,5001);

据我所知,表格已正确插入。我对其他表格使用了相同的插入格式,但它不适用于这个表格。我不知道为什么,所以请帮忙。

这就是它给我的错误:错误报告 -SQL 错误: ORA-01861: 文本与格式字符串不匹配01861. 00000 - "文本与格式字符串不匹配"*原因:输入中的文本必须与 格式字符串(前导空格除外(。 如果 "FX"修饰符已打开,文字必须完全匹配, 没有额外的空格。*操作: 更正格式字符串以匹配文本。

对于您的情况,我认为您应该尝试以下操作:

insert into orders values (70001,150.5,to_date('2012-10-05','yyyy-MM-dd'),3005,5002);

insert into orders values (70001,150.5,'05-OCT-12',3005,5002);

或者,您可以保留格式并使用NLS_DATE_FORMAT

您必须将

NLS_DATE_FORMAT设置为 yyyy-mm-dd

ALTER SESSION SET NLS_DATE_FORMAT='yyyy-mm-dd' 

否则,日期不被识别为一个。

最新更新