ORCALE字符集AL32UTF8和ZHS16GBK的互相转换


AL32UTF8转成ZHS16GBK

cmd中输入“SQLPLUS”,回车,然后再在用户名下输入“SYS AS SYSDBA”,回车

密码后面输入“SYS”,回车。这里输入密码是隐式的,所以看不见,只要输入就好了。

这里输入SQL查询语句,select * from nls_database_parameters where parameter='NLS_CHARACTERSET'; 查看当前数据库字符集。

 

此时数据库服务器已启动,则先执行SHUTDOWN IMMEDIATE命令关闭数据库服务器,然后执行以下命令:注:每条sql语句都会有相应的提示,请输入时务必仔细阅读和等待

SQL>STARTUP MOUNT;
 
 
SQL>ALTER SYSTEM ENABLE RESTRICTED SESSION;
 
 
SQL>ALTER SYSTEM SET JOB_QUEUE_PROCESSES=0;
 
 
SQL>ALTER SYSTEM SET AQ_TM_PROCESSES=0;
 
 
SQL>ALTER DATABASE OPEN;
 
 
SQL>ALTER DATABASE CHARACTER SET INTERNAL_USE ZHS16GBK; //跳过超子集检测
 
 
SQL>ALTER DATABASE national CHARACTER SET INTERNAL ZHS16GBK;

这一行不起作用,执行后出错ORA-00933: SQL 命令未正确结束,不过执行上一行命令已经生效,其他文章里未提到本行。

继续运行:

SQL>SHUTDOWN IMMEDIATE;
 
 
SQL>STARTUP

 到这里就完成了字符集从AL32UTF8转成ZHS16GBK了。

 

=================================================

ZHS16GBK转成 AL32UTF8

SQL> select userenv('language') from dual;

这也可以查询oracle的字符集。

开始修改字符集:需要先关闭数据库 SHUTDOWN IMMEDIATE

SQL> startup mount

SQL> alter system enable restricted session;

SQL> alter system set job_queue_processes=0;

SQL> alter system set aq_tm_processes=0;

SQL> alter database open;

SQL> ALTER DATABASE character set INTERNAL_USE AL32UTF8;

SQL> shutdown immediate


SQL> startup

 

SQL> select userenv('language') from dual;

继续使用 select userenv('language') from dual;查询oracle字符集。

 


免责声明!

本站转载的文章为个人学习借鉴使用,本站对版权不负任何法律责任。如果侵犯了您的隐私权益,请联系本站邮箱yoyou2525@163.com删除。



 
粤ICP备18138465号  © 2018-2025 CODEPRJ.COM