通州统计局:SQL Server往Oracle导入数据

来源:百度文库 编辑:中财网 时间:2024/05/07 02:18:02
由于做的软件要求跨平台,要不数据库变成Oracle的,因此需要把SQL Server 2000的数据导入到Oracle 10g中去。发现SQL Server自带的导入导出比较好用!恩恩,现在开始讲一讲怎么吧SQL Server的数据导入到Oracle中。

      先说说目的:

在PC机A中安装的Windows系统下SQL Server中有源数据库DBServer。
PC机ip地址:192.168.1.103。主机名:LENOVO-78EB319A
数据库中使用管理员sa,密码lenovo。貌似用不上……

在PC机B中安装的Solaris系统下Oracle中有目标数据库DBServer。
PC机ip地址:192.168.1.105。主机名:vic.MINg
其中DBServer是空数据库,刚刚创建的。

讲A机Windows XP系统SQL Server 2000中数据库DBServer中的表和视图导入到B机Solaris 10系统Oracle 10g中去。

在Solaris下的Oracle中创建用户

Oracle下创建用户赋予权限,在终端中启动 SQL Plus。
创建用户+密码(用户:sa 密码:lenovo)

SQL> create user sa identified by lenovo;

单独赋予用户权限

SQL> grant create session to sa;
SQL> grant create table to sa;
SQL> grant create sequence to sa;
SQL> grant create view to sa;

当然也可以给用户赋予DBA权限

SQL> grant sysdba to sa;

在Windows下创建一个ODBC数据源

控制面板——管理工具——数据源(ODBC),"系统 DSN” 项卡中点击添加按钮,选择相关Oracle驱动

配置数据源信息,如下

点击"Test Connection",进行测试看看是否和Solaris联通

SQL Server往Oracle导入数据

启动"SQL Server 企业管理器" ,在数据库——DBServer 中 "所有任务",导出数据。

根据提示,下一步,在这个主要配置"选择数据源"、"选择目的"、"选择源表和视图"等,可参看一下图片说明

这里在"选择源表和视图"的时候,主要要把数据库的目的表名或视图名改成大写的并且去掉前面的用户名,可以参照上图填写。进行下一步操作,在最后,我遇见了一个小小的问题,在导入导出的时候Oracle中无法创建表或视图,可以看到相应提示 "ORA-01950: 对表空间 'USERS' 无权限"。


"ORA-01950: 对表空间 'USERS' 无权限" 解决方法:

创建新的用户时,要指定default   tablespace,否则它会把system表空间当成自己的缺省表空间。这样做是不提倡的。估计原来创建某个用户的时候没有指定缺省表空间,而现在它使用系统表空间的权限被DBA给收回了。

在Oracle中使用system登录执行以下语句即可

SQL> connect system/lenovo
SQL> alter user sa quota unlimited on users;

这次在试试,完全OK!

嘿嘿,完成以后SQL Server中的数据就已经导入到Oracle中了,赶紧去查询一下吧!