2013-04-27 78 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

相關問題