SqlServer2012导入Oracle详细案例

  第一次使用SqlServer2012,界面和VS2012风格一致了,Great!

  进入正题,这篇博文主要写一下自己亲测的一个案例,使用SqlServer2012的“导入和导出数据”功能向Oracle11g导入数据表,本机装的是SqlServer2012和Oracle11g客户端,Oracle实例安装在服务器192.168.40.115上。

  1.  打开“导入和导出数据”工具,第一个选择数据源,本地服务器名称就写点号“.”或者“localhost”,身份验证选择第一个即可,然后选择要导出的数据库名称,接着点击下一步。

  

  2.  在“目标”下拉框选择“.Net Framework Data Provider for Oracle”(SqlServer2012版本的导入导出数据工具去除了以前版本里的Microsoft ODBC for Oracle),在Password和User ID填写登录到Oracle数据库的密码和用户名,在DataSource栏按照以下格式填写(尾部不要带  有分号):

  (DESCRIPTION=(ADDRESS=(PROTOCOL=TCP)(HOST=192.168.40.115)(PORT=1521))(CONNECT_DATA=(SERVICE_NAME=orcl))) 

  填好后,点击空白处“ConnectionString”会自动生成。点击下一步。

  

  3.  如果连接不成功会提示:

  

    如果连接成功,则会进入下一步:

  

  如果不是整表导出,则选择第二个选项,使用SQL语句筛选导出数据,这里是整表导出,所以直接点击下一步。

  4.  选择需要的导出的表。

  

  双击所选表的对应的按钮,打开“列映射”窗口,

  

  再点击“编辑 SQL”按钮,

  

  这里发现工具自动生成的Oracle中创建表的SQL语句有一点小问题,就是表名和列名都是带双引号的,这样生成的表名和列名也是带双引号的,但如果在这里将SQL语句修改正确,最终导出数据的结果是只创建成功了表,但数据传输失败,所以选择默认的SQL语句执行,最后在Oracle里更改表名和列名。

  5.  由于Oracle没有int类型,所以需要进行转换,根据情况,选择出错时的处理方式,再点击下一步。

  

  6.  这一步没什么好说的,点击“完成”,则执行数据导出工作。

  

  7.  执行成功的结果

  

  8.  最后需要在PL/SQL中对带双引号的表名和列名进行重命名处理,分别使用两条SQL语句:

  “ALTER TABLE old_table_name RENAME TO new_table_name;--重命名表

  ALTER TABLE [table_name] RENAME COLUMN [column_name] TO [new_column_name];--重命名列”


  结束语:这次是通过“.Net Framework Data Provider for Oracle”的方法向Oracle导入数据,因为工具自身的缺陷,最后需要对结果进行一下小处理,总体而言方法还算简便。

posted @ 2014-09-02 19:32  Roshomon  阅读(7377)  评论(2编辑  收藏  举报