SQLServer导数据到Oracle澳门新葡亰平台官网,的切

从SQLServer导数据到Oracle大概有以下几种方法:

转自:http://www.maomao365.com/?p=5416

 前言

  1. 使用SSMS的导出数据向导,使用Microsoft ODBC for Oracle或Oracle Provider for OLE DB连接到Oracle
  2. 导出到平面文件
  3. 导出包含数据的SQL脚本。
  4. 使用ETL工具。
  5. 自己开发软件。

 

转帖请注明出处: 

以下使用第2种方法来进行数据迁移的。

摘要:
order by 1,2 的含义是对表的第一列  按照从小到大的顺序进行排列

开发环境嘛, 作为.Net系Sql Server那是必备的. 听过Sql server可以安装在Linux上了..于是抱着试一试的心态体验了一把..

使用BCP合适导出大容量数据。这里导出千万级别的数据,也是很快就能成功。

 然后再对第二列按照从小到大的顺序进行排列

不试不知道, 一试吓一跳...安装依然是爆简单, 居然比在Windows上面安装还要简单....

如果导出时还需要做一些数据的处理,比如多表关联,字符处理等,比较复杂的逻辑,最好是做成存储过程,BCP直接调用存储过程即可。

  order by 1,2 等同于 order by [第一列],[第二列] 

Just Do It!!!!

BCP "exec TestDB.dbo.export_t1 " queryout d:exportt1.txt -c -t"||" -S"192.168.1.100" -Urpt -Prpt123
pause

USE TestDB
GO

CREATE PROC [dbo].[export_usercar]
AS
    SELECT  [carId]
           ,CONVERT(NVARCHAR(30), [addTime], 120)
           ,CONVERT(NVARCHAR(30), [lastSearchTime], 120)
           ,CONVERT(NVARCHAR(30), [updateTime], 120)
           ,[carType]
           ,[userTelephone]
           ,[isCorrect]
           ,[userId]
           ,[validFlag]
           ,[Channel]
           ,[carCode]
           ,[engineNumber]
           ,[carNumber]
    FROM    [TestDB].[dbo].[t1] WITH ( NOLOCK )
    WHERE   validFlag = 1
            AND isCorrect = 1;

 详见以下举例说明  

 

把导出文件上传到Oracle所在的主机上,如CentOS下。

 

 开始安装

使用Oracle的SQL*LOADER导入平面文件。假如Oracle中有已经创建好的表,与导入文件对应。

 

 由于是新系统, 没有安装过Sql Server, 所以就变得很简单了. 根据微软官方的文档一步一步就OK...微软安装文档

把以下的内容用vi,写到import-t1.ctl

create table A (keyId varchar(20),name varchar(120))
go
insert into A (name,keyId)values(10,'we')
insert into A (name,keyId)values(2,'b')
insert into A (name,keyId)values(3,'C')
insert into A (name,keyId)values(4,'a')
insert into A (name,keyId)values(5,'E')
insert into A (name,keyId)values(7,'F')
go
select * from A 
go
select * from A order by  1,2 
go
truncate table A
drop table A 
go 

澳门新葡亰平台官网 1

load data
CHARACTERSET 'ZHS16GBK'
infile '/data/import/t1.txt' "str 'rn'"
into table SCOTT.T1
fields terminated by '||' TRAILING NULLCOLS
(
carId, 
addTime DATE "YYYY-MM-DD HH24:MI:SS",
lastSearchTime DATE "YYYY-MM-DD HH24:MI:SS",
updateTime DATE "YYYY-MM-DD HH24:MI:SS",
carType ,
userTelephone  ,
isCorrect  ,
userId  ,
validFlag ,
Channel ,
carCode  ,
engineNumber ,
carNumber  
)

 

由于是CentOS所以直接选择RHEL就OK了....

使用SQL*LOADER注意几个问题:

请认真阅读微软给的提示...必要条件是

  • 字符编码
  • 字段分隔符
  • 行结束符
  • 日期或时间格式
  • 特殊字符
  • 导入字段的顺序
  • 导文件文件的表字段类型和长度是否合适

澳门新葡亰平台官网 2

使用sqlldr命令把数据导入到Oracle中。

1. 下载 Microsoft SQL Server Red Hat 存储库配置文件

本文由澳门新葡亰平台官网发布于数据库,转载请注明出处:SQLServer导数据到Oracle澳门新葡亰平台官网,的切

TAG标签:
Ctrl+D 将本页面保存为书签,全面了解最新资讯,方便快捷。