修改Oracle字符集(character set)
本方法适用于Oracle9i, 10g以及XE. 在10.2.0.1.0下测试无错. 需要注意的是, 使用此方法会破坏数据库中的原有双字节字符. 一种办法是先将数据库导出, 修改完字符集后再导入; 另一种办法就是不管他, 就那样使用. 一般如果是一个测试环境, 像方法二那样就可以了, 但是可能某些表无法读取, 需要注意.
sql> 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
这里的INTERNAL_USE可选,譬如用于不能从父集转到子集的场合,但是这样做会产生乱码,或者表中的数据不能读取。
如果数据库中存在CLOB字段,那么就不允许对字符集进行转换,此时可以查看alert<sid>.log文件,把含有CLOB的表trancate.
sql> trancate table [table_name];
转换后的数据库字符集可以通过以下命令察看.
sql> select name, value$ from props$ where name like '%NLS%';
从网上找来的
修改Oracle字符集(character set)
最新推荐文章于 2023-12-31 21:30:24 发布
本文提供了一种在Oracle 9i、10g及XE版本中更改字符集的方法,包括关闭数据库、设置受限会话、调整系统参数等步骤。特别注意,此过程可能会导致双字节字符损坏,建议提前备份数据。
9089

被折叠的 条评论
为什么被折叠?



