如何将SQLSERVER上的数据插入到ORACLE上

2024-12-04 08:17:18
推荐回答(1个)
回答1:

在我们使用SQL Server数据库的过程中,有时需要将SQL Server数据导出,导入到其他的数据库中,比如导入到Oracle中。

  假设要将SQL Server中的Northwind数据库中的Products表导出到Oracle的Scott用户

  首先需要有安装SQL Server企业版

  1.打开工具:

  开始->程序->

  导入和SQL Server数据导出数据

  2.下一步,选择数据源

  [数据源]选择“用于SQL Server的Microsoft OLE DB提供程序”,这应该是缺省值。

  [服务器]选择要导出数据的服务器,如果是本机,选择(local)

  [数据库]选择要导出的数据所在的库,这里选择Northwind

  3.下一步,选择目的

  [目的]选择Microsoft ODBC for Oracle

  [DSN]选择用户/系统DSN一项,然后在下拉列表框中找一个已经连接到了Scott用户的DSN名称。

  如果下拉列表中没有,点下拉列表框右侧的[新建],出现创建新数据源界面。

  接下来选择系统数据源,下一步,在驱动程序列表中选择Microsoft ODBC for Oracle

  下一步,完成,出现Microsoft ODBC for Oracle安装界面

  [数据源名称]随便输入,比如sss

  [说明]可以不填

  [用户名称]填入要SQL Server数据导出到的Oracle用户名称,这里是scott

  [服务器]填入要连接到Oracle服务器所使用的服务名,比方说使用sqlplus scott/tiger@server1可以连接到数据库,那么这里就填入server1。如果本机就是服务器,使用sqlplus scott/tiger即可连接到数据库,这里空着不填即可。

  这样就创建好了一个数据源sss,保证下拉列表框中选择了sss一项。

  [用户名]填入SQL Server数据导出到的Oracle用户名称,这里是scott

  [密码]填入SQL Server数据导出到的Oracle用户使用的密码,这里是tiger

  4.下一步,指定表复制或查询

  如果要导出的内容是整个表,选择[从源数据库复制表和视图]

  如果要导出的内容是表的一部分列,行,可以选择[用一条查询指定要传输的数据],这时需要写出一个查询语句

  这里选择第一项[从源数据库复制表和视图]

  5.下一步,选择源表和视图

  点中要导出的表Products一行的复选框,目的、转换两栏就会出现内容。

  目的可以用来选择表名。转换可以用来修改列的数据类型或是整个建表的SQL语句

  6.下一步,保存、调度和复制包

  选中立即运行

  7.下一步,正在完成DTS导入/导出向导

  8.完成

  提示“成功地将n个表从Microsoft SQLServer复制到了Oracle”

  9.完成,关闭导入导出程序

  注意:因为oracle的表名都是大写的,而SQL的表可能是大小混写的,所以导入后在oracle里查不到该表,比如这个Products表在oracle里查询就应该写成select * from scott."Products";为了方便查询可以通过批量修改表名为大写以便后面导数据的工作。

  ---导完数据后执行下面语句,生成把表名修改成大写的操作

  select 'ALTER TABLE '||'"'||table_name||'"'||' RENAME TO '|| upper(table_name)||';' from user_tab_comments;

  把生成的文件执行即可把此用户下的所有表名修改成大写。