熱點推薦:
您现在的位置: 電腦知識網 >> 編程 >> Oracle >> 正文

其他數據庫向Oracle8i的轉移分析

2013-11-13 16:19:10  來源: Oracle 

  如何實現MS SQL SysbaseAccess向Oraclei移植
  隨著Oracle在中國的廣泛應用許多原來使用MS SQLSysbaseAccess等數據庫的用戶都碰到了數據移植的問題 其實存在著許多的方法這裡將介紹種方法
  使用MS SQL自帶的Import/Export工具
   Import/Export工具可以方便的把數據移植到Oracle你需要通過定義ODBC For Oracle 作為目的源這樣的方法可以保證SQL的絕大部分數據移植到Oracle中去但預先你必須在Oracle建立user 和 相應的tablespace因為SQL中有一些特殊的datatype如textimage等當一個table中有多於一個text或image的字段時將出現錯誤
  能執行這是你需要做出選擇或者把text 鏡像為varchar()或者鏡像為Long datatype但long datatype一個table裡只能有一個而且還有可能遇到字符集的問題最好用第三種方法或者第四種所以你遇到這樣的情況可以結合使用第種方法
  
  使用Oracle Migration Workbanch
   目前的版本是這個工具可以在免費下載它是Oracle提供的一個代替SQl*Loader的工具當然目前該工具仍然不能完全取代SQL*Loade
  r使用OMWB只要你定義了ODBC for MS SQL 或Access或Sysbase就可以很方便的把
  tabelsviewstrigerprocedureshortnapsusers等完全轉到Oracle中去對於text可以鏡像為CLOB類型CLOB類型可以在一個Oracle table裡有多列 image可以鏡像為BLOB但是遺憾的是OMWB不支持中文CLOB無論我如何調整數據migrate到Oracle後都變成了????如果誰有解決的方法別忘了email給我我對OMWB對數據流(如imagevideosound)的控制非常的欣賞
  使用Oracle的 SQL*Loader
   使用SQL*Loader也許是最不方便的方法但是是最有效的方法可以使用各種方法把源數據導到一個外部分件中我使用了MS SQL帶的BCP工具可以把那些特殊多text字段的tables導出作為外部文件然後使用SQL*Loader在把這些數據導到Oracle的一個臨時表裡在對第中方法出現的????字段進update
  使用程序進行移植
   例子從SQL向基於Linux下的Oracle數據庫倒入數據
   程序語言java與數據庫的連接
  SQLjdbcodbc橋java自帶
   OraclejdbcOracle提供
   代碼如下
  import javalang*;
  import javasql*;
  import oraclejdbcdriver*;
  //倒入要用到的包
  public class hhw extends Object {
  public static void main(String args[])
  throws SQLException ClassNotFoundException
  //拋出SQLException異常
  {
  ClassforName(sunjdbcodbcJdbcOdbcDriver);
  ClassforName (oraclejdbcdriverOracleDriver);
  // 登記驅動程序准備聯接數據庫
  Connection cn =DriverManagergetConnection (jdbc:oracle:thin:@::SONIC sadly sadly);
  Connection cn =DriverManagergetConnection (jdbc:odbc:sql sa );
  //聯接到數據庫建立到兩個數據庫的連接
  Statement s=cncreateStatement();
  Statement s=cncreateStatement();
  ResultSet rs=sexecuteQuery(select * from users where id> and id<
  );
  //從數據源中取得數據定義一些中間變量
  int id;
  String name=new String();
  String passwd=new String();
  String email=new String();
  //執行另一個查詢向目的數據庫插入數據
  while(rsnext())
  {id=rsgetInt();
  name=rsgetString(name);
  passwd=rsgetStrin(passwd);
  email=rsgetString(email);
  //Systemoutprint(id+name+passwd+email);
  sexecuteQuery(insert into bbsuser values(+id++name++passwd++email+));
  }
  }}
  

From:http://tw.wingwit.com/Article/program/Oracle/201311/18137.html
  • 上一篇文章:

  • 下一篇文章:
  • 推薦文章
    Copyright © 2005-2013 電腦知識網 Computer Knowledge   All rights reserved.