2014-04-12 1 views
1

날짜 데이터 형식의 필드가있는 테이블이 있습니다. 나는 달 8 월입니다 레코드를 삽입, SQLPLUS 오류를입력 월이 8 월 8 일 sqlplus 일 때 삽입 할 수 없습니다.

insert into hcheckin values ('T00003','C00003',to_date('11-AUG-2006'),'0800'); 

를 제공하려고이 오류 메시지 때마다 :

ORA-01858: a non-numeric character was found where a numeric was expected 

그러나 때 입력이 레코드 :

insert into hcheckin values ('T00001','C00001',to_date('08-JUN-2006'),'0900'); 

오류가 없습니다. 나는 다른 달도 시도했다. 해당 월에 AUG가있는 데이터를 삽입 할 때만 오류가 발생합니다.

+0

테이블에 트리거가 있습니까? –

답변

0

당신은 기본 날짜 형식에 의존하지만, 명시 적으로 지정해야합니다 도와주세요 (@ a_horse_with_no_name의 주석 사항에 따라

INSERT INTO hcheckin 
VALUES ('T00003', 'C00003', TO_DATE('11-AUG-2006', 'DD-MON-YYYY'), '0800'); 

는 안전한 방법 대신 월 이름의 번호를 사용하는 것 또는 그 약칭) :

INSERT INTO hcheckin 
VALUES ('T00003', 'C00003', TO_DATE('11-08-2006', 'DD-MM-YYYY'), '0800'); 
+0

이것은 여전히 ​​100 % 안전 장치가 아닙니다. 언어 설정이 다르면 (항상 'AUG'가 아니기 때문에) 여전히 실패 할 수 있습니다. 현지화 된 월 이름 대신 숫자를 사용하는 것이 더 안전합니다 –

+0

@a_horse_with_no_name 좋은 지적 - 저는이 답변을 제 답변에 추가했습니다. – Mureinik