Vâng, điều tốt mà cũng thất bại ... đó không phải là một ý kiến hay ... :-)
Trước hết, để được hỗ trợ UTF-8 trong Oracle, bạn sẽ muốn sử dụng bộ ký tự 'AL32UTF8'.
Đây có phải là một cơ sở dữ liệu hoàn toàn mới không? Hay một cơ sở dữ liệu hiện có với dữ liệu đã có trong đó?
Nếu chúng ta đang nói về cơ sở dữ liệu mới, bạn chỉ nên thả cơ sở dữ liệu và tạo lại, chỉ định bộ ký tự AL32UTF8 trong DBCA, khi bạn tạo cơ sở dữ liệu.
Nếu đó là một cơ sở dữ liệu hiện có, với dữ liệu đã có trong đó, thì nó phức tạp hơn một chút. Nó hiện đang sử dụng bộ ký tự nào? AL32UTF8 có phải là tập thay thế trực tiếp của tập ký tự đó không?
Đây thực sự là một môn học không hề tầm thường. Nói tóm lại, bạn cần biết bộ ký tự hiện tại và bộ ký tự bạn đang chuyển đến, đồng thời bạn sẽ cần chạy tiện ích 'CSSCAN' để kiểm tra các vấn đề về khả năng tương thích và chuyển đổi dữ liệu.
Để biết toàn bộ câu chuyện, bạn nên kiểm tra tài liệu sau trên MOS:
Thay đổi NLS_CHARACTERSET thành AL32UTF8 / UTF8 (Unicode) [ID260192.1]
Hy vọng điều đó sẽ hữu ích.