'12-JUN-87'
không phải là ngày mà nó là một chuỗi ký tự.
Nếu bạn muốn tạo một ngày để chèn vào bảng thì bạn cần phải:
- Sử dụng ký tự ngày ANSI
:
DATE '1987-06-12'
- Hoặc, một cách rõ ràng, chuyển đổi chuỗi ký tự thành a ngày
:
TO_DATE( '12-JUN-87', 'DD-MON-YY', 'NLS_DATE_LANGUAGE = American' )
Nếu bạn cố gắng sử dụng một chuỗi ký tự làm ngày thì Oracle sẽ cố gắng chuyển đổi nó thành một ngày sử dụng NLS_DATE_FORMAT
tham số phiên làm mặt nạ định dạng. Nếu mặt nạ định dạng này không khớp với định dạng của chuỗi thì một ngoại lệ sẽ được tạo ra.
Lưu ý:người dùng có thể thay đổi các thông số phiên và có thể khác nhau đối với mỗi người dùng, vì vậy bạn không nên dựa vào giá trị mặc định này.