ORACLE数据库字段内容字符集转换

shalen520 2009-02-18 06:02:37
现有一数据库,字符集为UTF8

字段中存储的中文字符为双字节GBK格式,而正常情况下UTF8的中文应该是三字节

请问:如何利用oracle的相关命令将这些双字符的中文字符转换为三字节的UTF8格式?
...全文
517 12 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
12 条回复
切换为时间正序
请发表友善的回复…
发表回复
shalen520 2009-03-25
  • 打赏
  • 举报
回复
还是没有搞定

结贴了
oraclelogan 2009-02-26
  • 打赏
  • 举报
回复
[Quote=引用 10 楼 fzzlz 的回复:]
从GBK导出的数据,要导入UTF8数据库时,表结构的字段长度全部要增加50%。
[/Quote]

这个是正确的,说的不错!
fzzlz 2009-02-26
  • 打赏
  • 举报
回复
从GBK导出的数据,要导入UTF8数据库时,表结构的字段长度全部要增加50%。
小墨鱼 2009-02-26
  • 打赏
  • 举报
回复
帮顶一下。。
shalen520 2009-02-24
  • 打赏
  • 举报
回复
都试过了,还是不行,不过使用convert函数可以转,但是这个太麻烦,因为字段很多,还是想找个能一次性搞定的办法
oraclelogan 2009-02-21
  • 打赏
  • 举报
回复
[Quote=引用 5 楼 fzzlz 的回复:]
楼上说的对,先把原来数据修改成UTF8,再进行导出,再导入UTF8的数据库。
[/Quote]

呵呵,谢谢了 !
oraclelogan 2009-02-19
  • 打赏
  • 举报
回复
[Quote=引用楼主 shalen520 的帖子:]
现有一数据库,字符集为UTF8

字段中存储的中文字符为双字节GBK格式,而正常情况下UTF8的中文应该是三字节

请问:如何利用oracle的相关命令将这些双字符的中文字符转换为三字节的UTF8格式?
[/Quote]

从网上找了一些信息,希望对楼主有用:

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%';
jlj84237485 2009-02-19
  • 打赏
  • 举报
回复
帮顶一下
fzzlz 2009-02-19
  • 打赏
  • 举报
回复
楼上说的对,先把原来数据修改成UTF8,再进行导出,再导入UTF8的数据库。
ixora 2009-02-18
  • 打赏
  • 举报
回复
学习了
xuqunying0545 2009-02-18
  • 打赏
  • 举报
回复
学习一下下
Andy__Huang 2009-02-18
  • 打赏
  • 举报
回复
参考:
http://topic.csdn.net/u/20090111/12/9eb8eacd-17e7-4474-9857-0c4282a2ddcb.html

17,382

社区成员

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

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