需要将一个oracle实例EXP出来,导入到另一台电脑的一个oracle实例,关键是字符集不同,一个是zhs16gbk一个要用utf8
因为zhs16gbk为2字节的,uft8为3字节的,所以这样导入过去,会有很多varchar2的数据不够长,会出现一堆错误。
现在想,1:是否先把原有的DB实例中扩大所有的varchar2栏位,2:导出后,先导进去表的架构,不导入数据,然后再修改表结构,扩大栏位长度。再导入数据。
select 'alter table '||table_name||' modify '||column_name||' varchar2('|| case when data_length > 2000 then 4000 else (2*data_length) end ||');'  from user_tab_columns where data_type='VARCHAR2' order by table_name;如何把他直接导出到,例如D盘的一个SQL文件,然后我直接运行这个文件即可修改长度。之前写过,现在忘记怎么写了。还有,如果我用rows=n,值imp进去架构,修改完,再imp一遍可以吗(这次imp主要是要导入里面的数据,因为结构已经导入一次了。),会不会出错。或者语法要怎么下。麻烦各位了。