国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 開發 > 綜合 > 正文

不同字符集倒庫的方法

2024-07-21 02:39:36
字體:
來源:轉載
供稿:網友
第一步: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.

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 绥德县| 江达县| 湾仔区| 朝阳区| 织金县| 桑植县| 平南县| 义乌市| 龙岩市| 酒泉市| 舒城县| 咸丰县| 莲花县| 嘉义市| 乐安县| 会东县| 奉新县| 堆龙德庆县| 阳春市| 星座| 庆阳市| 深泽县| 前郭尔| 冀州市| 吉安县| 安平县| 张掖市| 大港区| 五河县| 海南省| 安图县| 镇江市| 历史| 成武县| 陆丰市| 霍山县| 保定市| 永顺县| 莱州市| 涡阳县| 奇台县|