热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

不同字符集倒库的方法_sqlserver

第一步:EXP 原 US7ASCII数据库中的SCOTT用户。第二步:EXP 原US7ASCII 数据库中的ZHAOBOYI用户。第三步:CREATE NEW DATABASE(CHARACTER

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

http://www.gaodaima.com/35812.html不同字符集倒库的方法_sqlserver

第四步:将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(‘

The file  ‘||p_Filename||’    generated!

’);
  end if;
      END LOOP;
     
 EXCEPTION
   WHEN NO_DATA_FOUND THEN
     htp.p(‘

The file  ‘||p_Filename||’    Failed!

’);
    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(‘

The file  ‘||p_Filename||’    Failed!

’);

       
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)

 

欢迎大家阅读《不同字符集倒库的方法_sqlserver》,跪求各位点评,若觉得好的话请收藏本文,by



推荐阅读
  • 转自:http:www.phpweblog.netfuyongjiearchive200903116374.html一直对字符的各种编码方式懵懵懂懂,什 ... [详细]
  • 下载器,就是一种网络工具,从网络中接收自己想要的数据。下载器是一个网络客户端。它的下载流程无非就是客户端连接服务器端,然后发送资源下载请求 ... [详细]
  • Linux文件目录和权限
    Linux文件目录和权限前言:Linux一般将文件可存取的身份分为三个类别,分别是ownergroupothers,根据权限划分,每个目录都可以拥有相对身份的-rwx[可读可写可执 ... [详细]
  • 【Modbus 】Modbus 协议
    Modbus协议简介Modbus协议是一项应用层报文传输协议,包括ASCII、RTU、TCP三种报文类型。标准的Modbus协议物理层接口有RS232、RS422 ... [详细]
  • 正月十五后第一贴:网页设计素材倾情奉献(附下载源文件)
    昨晚通宵把本该年前完成的项目中,最后两模块搞完.浏览整个系统,可以用惨不忍睹来形容,功能上实现是没问题,不过,页面布局,美化等,就太差的忒多了.于是google之,找到的很少, ... [详细]
  • C++字符字符串处理及字符集编码方案
    本文介绍了C++中字符字符串处理的问题,并详细解释了字符集编码方案,包括UNICODE、Windows apps采用的UTF-16编码、ASCII、SBCS和DBCS编码方案。同时说明了ANSI C标准和Windows中的字符/字符串数据类型实现。文章还提到了在编译时需要定义UNICODE宏以支持unicode编码,否则将使用windows code page编译。最后,给出了相关的头文件和数据类型定义。 ... [详细]
  • 目录浏览漏洞与目录遍历漏洞的危害及修复方法
    本文讨论了目录浏览漏洞与目录遍历漏洞的危害,包括网站结构暴露、隐秘文件访问等。同时介绍了检测方法,如使用漏洞扫描器和搜索关键词。最后提供了针对常见中间件的修复方式,包括关闭目录浏览功能。对于保护网站安全具有一定的参考价值。 ... [详细]
  • 常用工具(一)
    1.时间戳在线转换工具(1)链接https:tool.lutimestamp(2)说明可以通过此工具:将时间戳转为具体时间点,也可以将具体时间点转为时间戳(3)效果2.JSON在线 ... [详细]
  • java io换行符_Java IO:为什么从stdin读取时,换行符的数字表示出现在控制台上?...
    只是为了更好地理解我在讲座中听到的内容(关于Java输入和输出流),我自己做了这个小程序:publicstaticvoidmain(String[]args)thro ... [详细]
  • c语言 怎么访问64位地址_C语言调动硬件的原理是什么?
    大家都知道我们可以使用C语言写一段程序来控制硬件工作,但你知道其工作原理吗?1c语言在实际运行中,都是以汇编指令的方式运行的,由编译器把C ... [详细]
  • 我举个例子,C代码如下:#include<stdio.h>main(){charx;printf(本程序功能:任意输入一个字符,如果是字母字符,将其ASCII ... [详细]
  • mysql字符集和表字符集_Mysql数据库表引擎与字符集
    Mysql数据库表引擎与字符集1.服务器处理客户端请求其实不论客户端进程和服务器进程是采用哪种方式进行通信,最后实现的效果都是:客户端进程向服务器进程发送一段文本(MySQL语句) ... [详细]
  • 在Sqlserver数据库历代版本当中,系统数据库有四个,master,model,msdb,tempdbmaster----记录SQLServer系统的所有系统级信息。这包括实例范围的元数 ... [详细]
  • php5.3.x访问sqlserver2005
    由于项目需要,临时用php访问Sqlserver数据库,于是配置mssql扩展,但是无法访问,按照网上各种dll文件copy都不成功,最后终于发现是php版本问题,我的版本是php5.3 ... [详细]
  • 根据时间更改网站背景的脚本。热!
    我在网上找到了它,并以自己的方式对其进行了自定义;作者的功劳就在那里。实际上,这是一个用于更改背景颜色的脚本,并且在我看来& ... [详细]
author-avatar
陈春红_2009932
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有