修改Oracle字符集(转贴)
http://hi.baidu.com/quijote/blog/item/7ed20f1732052b0f4a90a7a1.html
oracle 11g 修改字符集
2010-09-27 17:39
C、server端字符集修改 SQL>conn / as sysdba; 若此时数据库服务器已启动,则先执行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 ZHS16GBK 提示我们的字符集:新字符集必须为旧字符集的超集,这时我们可以跳过超集的检查做更改:SQL> ALTER DATABASE character set INTERNAL_USE ZHS16GBK; SQL> select * from v$nls_parameters; SQL>SHUTDOWN IMMEDIATE; SQL>STARTUP A、oracle server端字符集查询select userenv(‘language’) from dual其中NLS_CHARACTERSET 为server端字符集NLS_LANGUAGE 为 server端字符显示形式B、查询oracle client端的字符集$echo $NLS_LANG如果发现你select 出来的数据是乱码,请把client端的字符集配置成与linux操作系统相同的字符集。如果还是有乱码,则有可能是数据库中的数据存在问题,或者是oracle服务端的配置存在问题。 |
2010-09-27 17:39
C、server端字符集修改 SQL>conn / as sysdba; 若此时数据库服务器已启动,则先执行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 ZHS16GBK 提示我们的字符集:新字符集必须为旧字符集的超集,这时我们可以跳过超集的检查做更改:SQL> ALTER DATABASE character set INTERNAL_USE ZHS16GBK; SQL> select * from v$nls_parameters; SQL>SHUTDOWN IMMEDIATE; SQL>STARTUP A、oracle server端字符集查询select userenv(‘language’) from dual其中NLS_CHARACTERSET 为server端字符集NLS_LANGUAGE 为 server端字符显示形式B、查询oracle client端的字符集$echo $NLS_LANG如果发现你select 出来的数据是乱码,请把client端的字符集配置成与linux操作系统相同的字符集。如果还是有乱码,则有可能是数据库中的数据存在问题,或者是oracle服务端的配置存在问题。 |