第一步:EXP 原 US7ASCII数据库中的SCOTT用户。
第二步:EXP 原US7ASCII 数据库中的ZHAOBOYI用户。
第三步:CREATE NEW DATABASE(CHARACTER SET SIMPLIFIED CHINESE_CHINA.ZHS16GBK),
所有的路径与原
数据库相同。

第四步:将ZHS16GBK 中的INIT。ORA COPY INIT。ORA。BAK。
第五步:将US7ASCII 中的INIT。ORA COPY ZHS16GBK 修改相应参数。
第六步:生成ZHS16GBK 中的SCOTT 用户,授权,EXP ZHS16GBK 中的SCOTT 用户。
第七步:  生成ZHS16GBK 中的ZHAOBOYI 用户,EXP ZHS16GBK 中的ZHAOBOYI 用户。
第八步:用ULTRAEDIT 分别打开(US7ASCII)以及(ZHS16GBK)SCOTT 用户,将前5行中的U
S7ASCII 不同处改掉。
第九步:相应的做ZHAOBOYI 用户。
第十步:在ZHS16GBK中,执行SYS 用户的OWALOAD。SQL ,对HTP。P授权。
第十一步:做IMP,把原有的数据库倒入到新的数据库。
第十二步:解决大字段问题。
首先在原数据库中执行存储过程 fwrite_clob_NIU,将含有大字段的表生成到文件中,接着
,在新数据库中编译执行fupdate_clob_text,
将大字段倒回到新数据库中。
附录:
1。存储过程:FWRITE——CLOB——NIU
procedure       fwrite_clob_NIU as
    CURSOR c_lt IS
    SELECT c.text,c.info_id
    FROM info_ctext c
  where info_id <= 120
    --change7.16 WHERE  info_id <=100
    order by info_id asc;
/*
    1000-1100 F
    1100-1600 OK
    1600-1630 OK
    1629-1640 OK
    1640-1660 F
    1660-1668 OK
    1669 F
    1670-1750 OK
*/   
    Str                 VARCHAR2(32767) := Null;
    Position            INTEGER         := 1;
    New_Position        INTEGER         := 1;
Pat varchar2(80) := 'd:/writeclob';
--change716 Pat varchar2(80) := '/export/home0/ora8i/doc/ch';
    Save_File   utl_file.file_type;
    Result      BOOLEAN             := FALSE;
Dir_Delimiter   VARCHAR2(200) := '/';
--change 7.16    Dir_Delimiter   VARCHAR2(200) := '/';  -- NOTE: Use '/' for Win
dows NT
    p_Filename VARCHAR2(200);
    v_offset integer;
    v_amount integer;
    v_buffer varchar2(30240);
BEGIN
    v_amount := 30240;
    IF SUBSTR( Pat, LENGTH( Pat ), 1 ) != Dir_Delimiter THEN
       Pat := Pat || Dir_Delimiter; END IF;
    BEGIN
      FOR r IN c_lt
      LOOP
      IF r.text is not null then
   p_Filename := r.info_id ||'.dat';
   New_Position:=1;
   Position:=1;
      Save_File := utl_file.fopen( Pat, p_Filename, 'w' );
        if DBMS_LOB.INSTR( r.text, CHR(10), Position ) = 0 then
         begin
              V_OFFSET := 1;
              v_buffer := '';
         loop
 
            dbms_lob.read(r.text,v_amount,v_offset,v_buffer);
 
            v_offset := v_offset + v_amount;
           utl_file.put( Save_File,  v_buffer );
          --    htp.p(v_buffer);
          -- htp.p('jjjj');
       end loop;
        exception
         when no_data_found then
          null; 
      end;
        
          -- htp.p('111');
          -- Str := DBMS_LOB.SUBSTR( r.text,1)||CHR(10);
          -- HTP.P(STR);
        end if;  
        WHILE( New_Position != 0 )
        LOOP
          New_Position := DBMS_LOB.INSTR( r.text, CHR(10), Position );

Str := DBMS_LOB.SUBSTR( r.text, New_Position - Position, Position );
         -- HTP.P('STR=');
         -- HTP.P(STR);
          Position := New_Position + 1;

--change 7.17 IF New_Position != 0 THEN
             utl_file.put_line( Save_File, REPLACE( Str, CHR(10), Null ) );
         -- else
            
           --        utl_file.put_line( Save_File,  Str );
          -- change 7.17
          -- htp.p(new_position);
         -- END IF;
         END LOOP;
  UTL_FILE.FCLOSE(Save_File);
  htp.p('<center><h2>The file  '||p_Filename||'    generated!</h2></center>');
  end if;
      END LOOP;
     
 EXCEPTION
   WHEN NO_DATA_FOUND THEN
     htp.p('<center><h2>The file  '||p_Filename||'    Failed!</h2></center>');
    end;
END fwrite_clob_niu;
附录二:存储过程fupdate_clob_text
procedure       fupdate_clob_text as
    CURSOR c_lt IS
    SELECT c.text,c.info_id
    FROM info_ctext c
 -- where info_id = 112
   where ((info_id >= 1 and info_id <= 30) or
   (info_id >=30 and info_id <= 60) or
   (info_id >=60 and info_id <= 90) or
   (info_id >=90 and info_id <= 120))
   
  
   /* --CHANGE 716 WHERE type not in ('B','C','V','A','E') and ((info_id >=10000
 and info_id <20000) or
    (info_id >=1100 and info_id <1601)  or
    (info_id >=1600 and info_id <1630)  or
    (info_id >=1660 and info_id <1668) or
    info_id >=1670  or
    (info_id >=0 and info_id <501))
    */
    order by info_id asc;
/*
    1000-1100 F
    1100-1600 OK
    1600-1630 OK
    1629-1640 OK
    1640-1660 F
    1660-1668 OK
    1669 F
    1670-1750 OK
*/ 
    Tmp             CLOB; 
    Pat varchar2(80) := 'd:/writeclob';
  -- CHANGE 7.16 Pat varchar2(80) := '/export/home0/ora8i/doc/ch';
    Save_File   utl_file.file_type;
    Result      BOOLEAN             := FALSE;
    Dir_Delimiter   VARCHAR2(200) := '/';
    -- change 7.16 Dir_Delimiter   VARCHAR2(200) := '/';  -- NOTE: Use '/' for W
indows NT
    p_Filename VARCHAR2(200);
BEGIN
    htp.p('我们');
   
    IF SUBSTR( Pat, LENGTH( Pat ), 1 ) != Dir_Delimiter THEN
       Pat := Pat || Dir_Delimiter; END IF;
      FOR r IN c_lt
      LOOP      
  begin
     p_Filename :=to_char(r.info_id)||'.dat';
          UPDATE info_ctext SET text = ' '
           WHERE info_id=r.info_id;
         COMMIT;
              
          SELECT text INTO Tmp FROM info_ctext
         WHERE info_id = r.info_id  FOR UPDATE;

-- DBMS_LOB.TRIM( Tmp, 0 );

Result := Load_File( Pat, p_Filename, Tmp );

IF Result THEN
          UPDATE info_ctext SET text = Tmp
           WHERE info_id=r.info_id;
         COMMIT;
       END IF;
 
        end;
       END LOOP;   
 EXCEPTION
   WHEN NO_DATA_FOUND THEN
     htp.p('<center><h2>The file  '||p_Filename||'    Failed!</h2></center>');

END fupdate_clob_text;
附录三:新数据库字符集
NLS——LANG
SIMPLIFIED CHINESE_CHINA.ZHS16GBK
原数据库字符集
AMERICAN_AMERICA.US7ASCII.

______________________________________

===================================================================
新浪免费电子邮箱 (http://mail.sina.com.cn)
订阅手机短信头条新闻,天天奖多款时尚手机! (http://dailynews.sina.com.cn/c/272235.html)
订阅手机短信顶级新闻每天得新款手机大奖! (http://dailynews.sina.com.cn/c/266499.html)

不同字符集倒库的方法相关推荐

  1. libiconv字符集转换库使用方法

    在软件开发中不可避免的需要用到字符集的转换:转换方法很多如自行编写字符集转换库.利用Windows提供之MultiByteToWideChar函数等:自行编写相对周期较长,而利用MultiByteTo ...

  2. libiconv字符集转换库在C#中的使用

    <libiconv字符集转换库使用方法>一文中说到了libiconv可以实现不同字符集的转换.比如GBK转BIG5等.在项目中因为需要,找到这个库.可是这个库在C#中没有很好的支持.不过, ...

  3. S如何边缘控制_驾考科目二侧方位停车、倒库与S弯道,上坡起步技巧及注意事项,意外应对方法...

    有网友反映,侧方位和上坡也有问题的,我来补充一下我们(安徽怀宁)这里侧方位停车和上坡起步的操作步骤及注意事项吧 侧方位停车 1.定点停车 如图,定点停车要求对准1号胸口线,2号肩膀线,车身距离车子右侧 ...

  4. asp:dropdownlist如何去掉三角箭头_科目二倒库打轮早会压库角,教练9图详解如何快速调车避免压线?...

    大家都知道,科目二考试五项中,最难的项目就是倒车入库.史教练在给科二学员指导时,总是强调,练车时不要只记死点. 科目二考试过程瞬息万变,学员在倒库过程中,因为脚下离合没控制好,速度快了,或者是手慢了, ...

  5. input内容右对齐_向右打方向倒库过程中,如何判断后车距离?光线较暗车库倒库技巧...

    现在进入泉城广场的地下停车场,根据上方导向箭头提示,车位和出口都在右转方向. 现在大家从画面中可能觉得光线还可以,其实这个停车场光线比较差,从后视镜中可以看到相对真实的光线状态. 很多朋友曾经问过我, ...

  6. [转载]倒库移库技巧图解

    C1倒库移库技巧 一. 认识场地:脸对着车库,背后是1线,左边车库叫甲库,右边车库叫乙库,左边停车位置叫A点,右边停车位置叫B点. 二.考试程序:首先,从A点往后倒,入乙库底,经两进两退将车移入甲库, ...

  7. 新手学开车,起步,停车,倒库移库,练习图解,开车基本技巧

    一.起步, ­ 1.离合器采到底,挂一档. ­ 2.开左转向灯. ­ 3.鸣喇叭 ­ 4.松手制动. ­ 5左脚抬离合器.(挂二挡时关掉左转向灯) ­ ­ 二.停车.开右转向灯,踩刹车,踩到车速10至 ...

  8. linux plt.show不显示图片,解决matplotlib库show()方法不显示图片的问题

    解决matplotlib库show()方法不显示图片的问题 最近使用python里的matplotlib库绘图,想在代码结束时显示图片看看,结果图片一闪而过,附上我原来代码: import matpl ...

  9. 车内看车头正不正技巧_最常见的3种车位倒库技巧,以后停车都不是事,建议收藏!...

    随着经济发展人们生活水平日益提高,不少人甚至有了自己的小车,那么小汽车有什么倒车入库的技巧呢?今天小编分享了最常见的3种车位倒库技巧,注意勤加练习,倒车入库不是难题. 第一种是"一字型&qu ...

最新文章

  1. ceph的数据存储之路(6) -----pg的创建
  2. 【转】PhpStorm 提交代码到远程GitHub仓库
  3. pl/sql远程连接oracle服务器问题(各种情况) .,plsql远程连接oracle服务器问题(各种情况).docx...
  4. 使用echo输出一绝对路径,使用egrep取出其基名
  5. jQuery easyUI--下拉菜单的制作
  6. linux下批量替换文件内容的三种办法
  7. 好用的平板电脑_支架里的变形金刚让手机、电脑、平板更好用!6种角度,1秒切换...
  8. python冒泡算法_python_冒泡算法
  9. 正确的LeetCode刷题姿势!
  10. 2017年网易校招题 末尾0的个数
  11. 监听手指是否离开屏幕android_Flutter事件监听
  12. java成员初始化顺序_Java成员初始化顺序
  13. 华为鸿蒙os系统电脑有吗,华为全面启用鸿蒙OS系统!所有华为终端设备:默认搭载鸿蒙系统...
  14. 一步一个脚印学习WCF系列之WCF概要—WCF与SOA(二)
  15. MySQL延时更改数据_mysql数据库备份设置延时备份方法(mysql主从配置)
  16. OpenGL纹理本质(三)
  17. 设计模式-第一篇之单例模式
  18. 《中国人工智能学会通讯》——11.24 本文的出发点:模仿人类视觉
  19. python实现谷歌翻译
  20. ftp误删服务器文件恢复,ftp服务器文件误删

热门文章

  1. Skype for Business后端服务器部署AlwaysOn可用性组实战篇
  2. 鸿蒙硬件开发:Hi3861开发环境搭建及Windows下编译下载程序
  3. 跟股市谚语学炒股 读书笔记
  4. mysql数据库多表查询(内连接,外连接,自连接,子查询及案例分析)
  5. 苹果禁用UDID后续:开发者应尽早放弃UDID
  6. 64位JVM的Java对象头详解
  7. ubuntu硬盘序列号怎么查询_Linux下使用lshw批量查看磁盘信息|序列号|列表
  8. 忘记密码(通过手机验证码找回设置)自己写
  9. 计算机软件与理论主修课程,软件工程专业主修课程
  10. 小米红米手机刷入Recovery手机教程-TWRP下载-获取root权限-新增小米12/13Pro适配