急急!!如何在oracle9i里将ZHS16GBK的字符集改成UTF8????

alaxing 2003-10-24 02:06:07
如何在oracle9i里将ZHS16GBK的字符集改成UTF8????
我用alter database character set Utf8时就提示修改后的字符集必须是原来的超集!!
难道不能将gbk改成utf8??
...全文
275 8 打赏 收藏 转发到动态 举报
写回复
用AI写文章
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
tsj68 2003-10-26
  • 打赏
  • 举报
回复
要修改的字符集必须是现有字符集的超集,所以将zhs16gbk改成Utf8是不可以的,不过可以试试这种办法:
1、将客户端的字符集设为UTF8。
2、在客户端用exp将数据导出,这样服务器会自动将zhs16gbk转换成utf8(不过不能保证没有乱码,因为zhs16gbk是utf8的超集,所以zhs16gbk中的字符不一定都能转换成utf8的)
3、删除数据库,重新以utf8字符集建库。
4、将导出的文件导入。
daydayupliq 2003-10-24
  • 打赏
  • 举报
回复
imp/exp导致的字符集问题:
也能这样把*.dmp文件导入,可是深层的东西,大家继续讨论了!
set nls_lang=simplified chinese_china.zhs16cgb231280
set nls_lang=simplified chinese_china.ZHS16GBK
set nls_lang=simplified chinese_china.Utf8

见笑,俺也很菜的~
fuhai 2003-10-24
  • 打赏
  • 举报
回复
在注册表中查询所有NLS_LANG变量,修改其值为UTF8,应该可以修改的,但如上所说,修改后
带来数据库不正常工作和乱码的危险更大。
podded 2003-10-24
  • 打赏
  • 举报
回复
不存在超集的关系,不能用这个命令改的。用update props$也有能行的时候,但带来数据库不正常工作和乱码的危险更大。
字符集是创建数据库时设定的。
tsj68 2003-10-24
  • 打赏
  • 举报
回复
以zhs16gbk导出,然后以utf8导入.
北极星2013 2003-10-24
  • 打赏
  • 举报
回复
应该是不可以的。这两种字符集在Oracle里的存储机制是不同的。
alaxing 2003-10-24
  • 打赏
  • 举报
回复
可在9i里面v$props表里的NLS_lang的值改不了呀??
daydayupliq 2003-10-24
  • 打赏
  • 举报
回复
注册表:
hkey_local_machine>software>oracle>home0里有个NLS_LANG变量,修改之~

17,377

社区成员

发帖
与我相关
我的任务
社区描述
Oracle 基础和管理
社区管理员
  • 基础和管理社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧