DATE
열이있는 경우 VARCHAR2
이 아닌 DATE
을 항상 삽입해야합니다. 암시 적 변환을 사용하여 문자열을 올바르게 변환하는 것은 나쁜 생각입니다. 다른 세션에서 다른 NLS 설정을 사용하고 암시 적 변환을 다르게 수행하는 것은 매우 쉽습니다 (다른 DATE
또는 오류가 발생 함). 가장 쉬운 방법은 to_date
기능을 사용하는 것입니다. 그것은 할 수 있으므로
insert into Department(dname,
dnumber,
mgr_ssn,
mgr_start_date)
values('HR',
1,
'11001',
to_date('2012-04-05 10:15:00', 'yyyy-mm-dd hh24:mi:ss'));
은 또한 당신이 테이블에있는 모든 시간을 열 실제 순서를 볼 필요가 없습니다 보장하기 때문에 일반적으로 좋은 방법입니다 열을 나열 할 문을 수정 INSERT
명령문을 사용하여 테이블에 새 열을 추가하면 나중에 작동합니다. dnumber
이 NUMBER
이기 때문에 문자열을 삽입하는 대신 숫자를 삽입하도록 INSERT
문을 변경했습니다. (필요하지 않으면 암시 적 변환에 의존하지 마십시오.) 나는 당신이 5 문자 문자열을 삽입하고있는 사회 보장 번호를 나타내는 CHAR(9)
열을 가지고 있다는 명백한 버그를 시정하지 않았습니다.
가능한 복제본 [여기] (http://stackoverflow.com/questions/17206160/oracle-how-to-use-time-and-date) – Noel