2013-04-27 39 views
1
create table Coordinate_with 
(
    cor_id char(6), 
    cmp_id char(6), 
    start_date date,  
    shifted varchar(10), 
    primary key (cor_id,cmp_id), 
    foreign key (cor_id) references Coordinator(cor_id), 
    foreign key (cmp_id) references Company(cmp_id) 
); 

insert into Coordinate_with 
values ('COR-01','CMP-02','2009-03-22','Morning'); 

抛出错误ORA-01861:文字不匹配格式字符串。ORA-01861:文字不匹配格式字符串'日期数据类型错误'

+0

[Literal与Oracle中的格式字符串不匹配]的可能重复(http://stackoverflow.com/questions/3152955/literal-does-not-match-format-string-in-oracle) – Ben 2013-04-27 18:00:47

回答

5

当您提供一个“普通”字符串时,该值将根据您的NLS设置使用隐式类型转换进行转换。 A(标准)日期文字需要,随后在ISO风格(YYYY-MM-DD)格式的字符串的关键词date

insert into Coordinate_with 
    (cor_id, cmp_id, start_date, shifted) 
values 
    ('COR-01','CMP-02', DATE '2009-03-22','Morning'); 

或者您可以使用to_date()功能:

insert into Coordinate_with 
    (cor_id, cmp_id, start_date, shifted) 
values 
    ('COR-01','CMP-02', to_date('2009-03-22', 'yyyy-mm-dd','Morning'); 



Btw:work_shift可能是shifted的更好的列名称。我告诉过你,你需要找到一个与该列所包含的名称相匹配的名称。

+0

Words Not Enough谢谢你...... !!! – 2013-04-27 18:12:44

+0

@ user2326894:我认为你应该*真的*开始阅读Oracle手册。 – 2013-04-27 18:47:33

+0

我绝对开始sql几天bck ... 我一定会开始阅读手册... 支持的问题 – 2013-04-27 19:57:06

相关问题