今天有人突然提出这么个问题让我解决。以前也有到过,直接alter system做的。

但是这次是就是要求ZHS16GBK改成UTF8,导致很多数据丢失。

分析一下:首先ZHS16GBK只支持中文和英文,ALTUTF8只是基本所有语言。

ZHS16GBK汉字只有两个字节,而UTF8汉字占3个字节,所以迁移时候长度不够。

exp/imp错误。

总结了一下基本一下几种方法:

1.所有长度增大1.5倍,理论是可以的,但是有些哥们说他们试过基本行不通,很多都是增加3倍才搞定,不知道什么原因,超过4000的就要考虑大长度类型了。这么做保险。

2.建立dblink,用insert select这种方式做。convert 转换zhgbk-------&gtutf8

insert xxxxx select col,covert(co_char,'UTF8','ZHS16CGB231280') from xxxxx@dblink;

应该是很慢。

3.使用CSSCAN工具,检查下。

首先使用csscan扫描数据库或者某些表,然后执行如下过程

conn / as sysdba

set serveroutput on

DECLARE

newmaxsz  NUMBER;

BEGIN

FOR rec in

( SELECT distinct u.owner_name, u.table_name, u.column_name ,

u.column_type, u.owner_id, u.table_id, u.column_id,

u.column_intid FROM csmv$errors u

WHERE u.error_type='EXCEED_SIZE'

order by u.owner_name, u.table_name, u.column_name)

LOOP

select MAX(cnvsize)INTO newmaxsz from csm$errors WHERE

usr#=rec.owner_id and obj#=rec.table_id

and col#=rec.column_id and intcol#=rec.column_intid;

DBMS_OUTPUT.PUT_LINE(rec.owner_name ||'.'|| rec.table_name||' ('||

rec.column_name ||') - '|| rec.column_type ||' - '||

newmaxsz || ' Bytes');

END LOOP;

END;

/

这个需要执行一个脚本才拥有csmv$errors视图。

SQL> @ ?/rdbms/admin/csminst.sql

oracle 迁库中文转问好,ORACLE数据库迁移(ZHS16GBK到UTF8)相关推荐

  1. oracle 改成中文字符,修改 oracle xe 默认中文字符集成为:SIMPLIFIED CHINESE_CHINA.ZHS16GBK...

    修改 oracle xe 默认中文字符集成为:SIMPLIFIED CHINESE_CHINA.ZHS16GBK Oracle XE 执行安装程序后,很简单的默认为  SIMPLIFIED CHINE ...

  2. oracle 迁库 教程,Oracle整库文件迁移步骤详解教程

    oracle双机发生切换,客户端也连接不上,原因未知,从主机上看是虚拟内存不够,整机都是在跑oracle,看情形应该从oracle上找原因. 远程连接过去之后,从alter.log发现由于磁盘空间不足 ...

  3. oracle 导库时日志满了,oracle rac 11g 日志占满系统盘导致数据库down掉

    oracle日志占满系统盘满了导致数据库挂掉 并且archivelog日志也满了倒是数据库无法open,无法登陆,幸好还可以到mount状态.解决办法: 1.根据报错查看 表象: crs 服务down ...

  4. oracle 建库后 多路径,oracle数据库的多路径归档

    可以用来解决的问题:单个归档目录满导致数据库hang的问题 多路径归档的实现如下通过LOG_ARCHIVE_DEST_n和log_archive_min_succeed_dest两个参数来控制,具体如 ...

  5. oracle+sql+按中文拼音排序,Oracle 中文字段进行排序的sql语句

    Oracle 中文字段进行排序的sql语句 1)按笔画排序 select * from Table order by nlssort(columnName,'NLS_SORT=SCHINESE_STR ...

  6. oracle全库收集统计信息,Oracle快速收集全库统计信息

    环境:Oracle 11.2.0.4 采用并行的方式,快速收集全库统计信息,多用于跨版本升级之后,对全库的统计信息重新进行快速收集: --开启计时 set timing on --设置并行收集 exe ...

  7. oracle设置缓冲区大小设置,描述Oracle优化库高速缓冲区

    Oracle经过长时间的发展,很多用户都很了解Oracle优化库高速缓冲区了,这里我发表一下个人理解,和大家讨论讨论.日志缓冲区也称为重做日志缓冲区,它包含所有变化了的数据块.这些变化的数据块通过Or ...

  8. cmd导入oracle库文件,cmd 导入oracle数据库

    从服务器将Oracle数据库导出到本地Oracle数据库的方法 原文:从服务器将Oracle数据库导出到本地Oracle数据库的方法 1.将服务器上的Oracle数据库导入到本地   在CMD模式下执 ...

  9. Oracle 跨库查询表数据(不同的数据库间建立连接)

    1.情景展示 当需要从A库去访问B库中的数据时,就需要将这两个库连接起来: 两个数据库如何实现互联互通,在oracle中,可以通过建立DBLINK实现. 2.解决方案 2018/12/05 第一步:创 ...

最新文章

  1. 2018-3-10论文(网络评论非结构化信息表示与应用研究)笔记-----基于证据理论的综合评价模型建立
  2. Silverlight揭秘
  3. 增大减小LV大小和文件系统
  4. DL之CNN:利用自定义DeepConvNet【7+1】算法对mnist数据集训练实现手写数字识别、模型评估(99.4%)
  5. TF之LSTM:基于Tensorflow框架采用PTB数据集建立LSTM网络的自然语言建模
  6. 本地安装gem install --local redis-stat-0.4.13.gem
  7. linux中的和,|和||
  8. Spark _13_二次排序问题
  9. Bookshelf 2 简单DFS
  10. php验证旧密码,PHP最佳实践之过滤、验证、转义和密码
  11. 【Kafka】kafka消费组查看lag
  12. 深度 | Google Brain研究工程师:为什么随机性对于深度学习如此重要?
  13. windows获取cmd回显以及获取路径
  14. Linux内核入门(六)—— __attribute_ 机制
  15. 小米8SE如何安装google框架-之 chrome 手机安装 没有可安装该应用的设备
  16. 手机平板连接电脑热点是用不了
  17. 第二期:关于大数据相关的问答汇总,关注持续更新中哦~
  18. 关于c语言杨辉三角编写的改进
  19. PDF 预览和下载你是怎么实现的?
  20. Kinect for Windows SDK v2.0 开发笔记 (十三) 高清面部帧(4) 面部模型构建器

热门文章

  1. Type-Script使用详解
  2. 计算机硬件主流参数,计算机“三胞胎”|承上启下硬件:内存各参数详解
  3. 磁盘分区以及文件系统管理练习题
  4. Oracle Database 11g : ocp之SQL 基础
  5. CTP程序化交易入门系列之六:报单(一)
  6. 众说区块链:区块链的现在与未来
  7. 思科交换机创建Vlan时出错的解决方法(二)
  8. 矩形内部的正方形及长方形数目
  9. 编译原理知识点总结——S属性和L属性定义
  10. Android上基于HSV颜色模型实现取色盘功能