2013-04-27 2 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 : 문자가 'date datatype error'형식 문자열과 일치하지 않습니다.

+0

가능한 복제본 [리터럴은 Oracle의 형식 문자열과 일치하지 않습니다] (http://stackoverflow.com/questions/3152955/literal-does-not-match-format-string-in-oracle) – Ben

답변

5

"일반"문자열을 제공하면 값은 NLS 설정에 따라 암시 적 유형 변환을 사용하여 변환됩니다.

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'); 


:

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

은 또한 당신이 to_date() 기능을 사용할 수 있습니다 : 리터럴 (표준) 날짜는 ISO 스타일 (yyyy-mm-dd)이 포맷 문자열 다음에 키워드 date 필요
Btw : work_shiftshifted의 더 좋은 열 이름이었을 수 있습니다. 나는 여러분에게 칼럼에 들어있는 이름과 일치하는 이름을 찾아야한다고 말했습니다.

+0

단어가 충분하지 않습니다. 고마워 ... !!! –

+0

@ user2326894 : 오라클 매뉴얼을 읽기 시작해야한다고 생각합니다. –

+0

나는 jus 몇 일 bck 시작한 SQL ... 나는 확실히 설명서를 읽기 시작합니다 ... Thnks for support –

관련 문제