如何将SQL Server的数据导入到Oracle

1、首先在SQL Server的电脑上安装Oracle,或者是操作的电脑上安装Oracle,如果没有,导出时会提示失败

2、打开SQL Server,右键点击要导出的数据库,选择“任务”下的导出数据

3、数据源按照要导出的数据库填写,点击下一步

4、在目标页选择Oracle Provider for OLD DB,然后点击“属性”

5、在“连接”选项卡上的“数据源”那里填写Oracle客户端的服务命名,比如“orc1”,如果是远程可以填写上ip和端口号,例如“192.168.1.100:1521/orc1”,然后填写用户名和密码,有一个“允许保存密码”的选项,一定要勾上。然后点击“测试连接”,如果提示“测试连接成功”就可以点击“确定”按钮继续下一步了。

6、之后的步骤跟SQL Server之间导数据库是一样的。


注意事项

1、导入到Oracle后,有时候遇到表不属于当前用户的问题,检查下导入时和登录oracle是否使用的是同一个用户,如果还不可以,可尝试把SQL Server里的表名和字段名都转成大写后再导入,通常就能解决问题。

--SQLServer所有表名转成大写

declare @sql varchar(300)--,@rowcount varchar(10),@dyncnum int 
     declare @tablename varchar(100) 
     declare cursor1 cursor for         
     select name  from sysobjects  where xtype = 'u'  order by name               
     open cursor1                        
     fetch next from cursor1 into @tablename 
     while @@fetch_status=0            
     begin
         set @sql='sp_rename '''+@tablename+''','''+upper(@tablename)+'''' -- 此为修改为大写,如果修改为小写“lower” 
         --print @sql -- 首先打印出来 
         exec(@sql)              
         fetch next from cursor1 into @tablename 
     end
     close cursor1                    
     deallocate cursor1



--SQLServer所有字段名大写
declare @sql varchar(300)
declare @tablecolumnname varchar(100),@columnname varchar(100)
declare cursor1 cursor for
select b.name+'.['+a.name+']',a.name from syscolumns a,sysobjects b where a.id=object_id(b.name) and b.xtype='u' and a.xtype<>189 and a.xtype<>34 and a.xtype<>35 and a.xtype<>36
open cursor1
fetch next from cursor1 into @tablecolumnname,@columnname
while @@FETCH_STATUS=0
begin
set @sql='sp_rename '''+@tablecolumnname+''','''+UPPER(@columnname)+''',''column'''
--print @sql
exec(@sql)
fetch next from cursor1 into @tablecolumnname,@columnname
end
close cursor1
deallocate cursor1


2、Oracle没有主键自增的设置


3、Oracle日期类型跟Sqlserver不一样,原有程序查询的语句可能需要修改


4、Oracle的关键字和Sqlserver有些是不一样的,也需要修改

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值