2012-03-14 30 views

Trả lời

17
SELECT * 
    FROM v$nls_parameters 
WHERE parameter LIKE '%CHARACTERSET'; 

sẽ hiển thị cho bạn cơ sở dữ liệu và bộ ký tự quốc gia. Tập ký tự cơ sở dữ liệu kiểm soát việc mã hóa dữ liệu trong các cột CHARVARCHAR2. Nếu cơ sở dữ liệu hỗ trợ Unicode trong các cột đó, bộ ký tự cơ sở dữ liệu phải là AL32UTF8 (hoặc UTF8 trong một số trường hợp hiếm hoi). Tập ký tự quốc gia kiểm soát việc mã hóa dữ liệu trong các cột NCHARNVARCHAR2. Nếu bộ ký tự cơ sở dữ liệu không hỗ trợ Unicode, bạn có thể lưu trữ dữ liệu Unicode trong các cột với các kiểu dữ liệu này nhưng nói chung thêm độ phức tạp cho hệ thống-- các ứng dụng có thể phải thay đổi để hỗ trợ bộ ký tự quốc gia.

1

Unicode là một hệ thống mã hóa ký tự xác định mỗi nhân vật trong hầu hết các ngôn ngữ được nói trên thế giới, Hỗ trợ Unicode trong Oracle Database:

Character Set Supported in RDBMS Release Unicode Encoding 
AL24UTFFSS  7.2 - 8i     UTF-8 
UTF8   8.0 - 11g     UTF-8 
UTFE   8.0 - 11g     UTF-EBCDIC 
AL32UTF8  9i - 11g     UTF-8 
AL16UTF16  9i - 11g     UTF-16 

để đảm bảo cơ sở dữ liệu của bạn là Unicode, xin vui lòng kiểm tra giá trị của tham số "NLS_CHARACTERSET" và phải là AL32UTF8 hoặc AL16UTF16 từ danh sách ở trên.

SQL> 
SQL> SELECT * FROM v$nls_parameters WHERE parameter='NLS_CHARACTERSET'; 

PARAMETER     VALUE    CON_ID 
--------------------------- ------------------- ---------- 
NLS_CHARACTERSET   AL32UTF8   0 

Để thay đổi giá trị của thông số, hãy Lấy Fullback lên vì ALTER DATABASE tuyên bố không thể được cuộn lại và việc sử dụng sau báo cáo:

SHUTDOWN IMMEDIATE 
STARTUP MOUNT; 
ALTER SYSTEM ENABLE RESTRICTED SESSION; 
ALTER SYSTEM SET JOB_QUEUE_PROCESSES=0; 
ALTER SYSTEM SET AQ_TM_PROCESSES=0; 
ALTER DATABASE OPEN; 
ALTER DATABASE CHARACTER SET AL32UTF8; 
SHUTDOWN IMMEDIATE; 
STARTUP; 
Các vấn đề liên quan