DbSl Trace: Cannot run a UNICODE kernel against a non-UTF8 database (charset = AL32UTF8)

    技术2022-05-19  21

    1、问题

    DbSl Trace: Cannot run a UNICODE kernel against a non-UTF8 database (charset = AL32UTF8)

    2、分析

    安装的编码要求是unicode UTF8的,要是你安装的不是UTF 8子集编码的就转不了,要重新自定义安装时选择UTF8。可以用下列语句查寻当前的oracle数据库编码

    select * from v$nls_parameters; select * from nls_database_parameters; select * from sys.props$;

    3、办法

    SHUTDOWN IMMEDIATE;  STARTUP MOUNT EXCLUSIVE;  ALTER SYSTEM ENABLE RESTRICTED SESSION;  ALTER SYSTEM SET JOB_QUEUE_PROCESSES=0;  ALTER SYSTEM SET AQ_TM_PROCESSES=0;  ALTER DATABASE OPEN;  ALTER DATABASE NATIONAL CHARACTER SET INTERNAL_USE UTF8;  update props$ set VALUE$='UTF8' where NAME='NLS_NCHAR_CHARACTERSET'; update props$ set value$='UTF8' where name='NLS_CHARACTERSET'; commit; SHUTDOWN immediate;  startup; 


    最新回复(0)