一种SqlServer数据迁移到Oracle的方法总结

本文涉及的产品
RDS SQL Server Serverless,2-4RCU 50GB 3个月
推荐场景:
云数据库 RDS SQL Server,基础系列 2核4GB
简介: 一种SqlServer数据迁移到Oracle的方法总结

1.使用BCP命令,导出Sqlserver的数据到csv文件。我们可以把这些命令写成一个cmd命令,语句如下所示:    

CLS
@echo off
for %%F in (.\*.sql) do (
for /f "delims=~" %%a in (%%~dfF) do (
  rem echo "%%a"
  BCP "%%a" queryout "%%~nF.csv" -c -t, -S"ip_address" -d"database_name" -U"user_name" -P"password"
  @rem makecab /d compressiontype=lzx /d compressionmemory=21 "%%~nF.csv" "%%~nF.7z"
  @rem del "%%~nF.csv"
  )
  rem pause
)
pause

image.gif

ip_address :数据库的IP地址

database_name : 数据库名称

user_name : 数据库用户名

password:数据库密码

sql语句示例如下,注意sql语句的格式,必须在同一行:

select username,userno from t_user

image.gif

以上的cmd命令与上述sql文件在同一目录下,点击cmd命令,会导出SQL语句查询出的数据,格式为csv。注意必须安装sqlserver环境,上述cmd命令执行才有效,因为里面用到了bcp命令。

2.使用sqlldr命令,对应一定的ctl格式,将数据导入到oracle中。

我们同样可以将sqlldr命令写成cmd文件,如下所示:

CLS
@echo off 
  sqlldr username/password@ip:port/instancename control=t_user.ctl errors=1000 rows=1000 log=log.txt bad=err.txt 
pause

image.gif

对应的ctl文件,如下所示:

load data
infile 't_user.csv'
replace into table tmp_user
fields terminated by ','
OPTIONALLY ENCLOSED BY '"'
TRAILING NULLCOLS
(username,userno)

image.gif

上述语句表示,将t_user.csv中的数据,导入到tmp_user表中,csv中的列分别对应tmp_user表中的username与userno。

注意,必须安装oracle环境,上述cmd命令才有效。

总结:以上只是提供一种思路,现实中进行跨数据库迁移,也有很多现成的工具可以使用,例如navicat或者其他etl工具等等。

相关实践学习
使用SQL语句管理索引
本次实验主要介绍如何在RDS-SQLServer数据库中,使用SQL语句管理索引。
SQL Server on Linux入门教程
SQL Server数据库一直只提供Windows下的版本。2016年微软宣布推出可运行在Linux系统下的SQL Server数据库,该版本目前还是早期预览版本。本课程主要介绍SQLServer On Linux的基本知识。 相关的阿里云产品:云数据库RDS SQL Server版 RDS SQL Server不仅拥有高可用架构和任意时间点的数据恢复功能,强力支撑各种企业应用,同时也包含了微软的License费用,减少额外支出。 了解产品详情: https://www.aliyun.com/product/rds/sqlserver
目录
相关文章
|
9天前
|
Oracle 安全 关系型数据库
Oracle数据恢复—Oracle数据库误删除的数据恢复方法探讨
删除Oracle数据库数据一般有以下2种方式:delete、drop或truncate。下面针对这2种删除oracle数据库数据的方式探讨一下oracle数据库数据恢复方法(不考虑全库备份和利用归档日志)。
|
20天前
|
Java 测试技术 容器
从零到英雄:Struts 2 最佳实践——你的Web应用开发超级变身指南!
【8月更文挑战第31天】《Struts 2 最佳实践:从设计到部署的全流程指南》深入介绍如何利用 Struts 2 框架从项目设计到部署的全流程。从初始化配置到采用 MVC 设计模式,再到性能优化与测试,本书详细讲解了如何构建高效、稳定的 Web 应用。通过最佳实践和代码示例,帮助读者掌握 Struts 2 的核心功能,并确保应用的安全性和可维护性。无论是在项目初期还是后期运维,本书都是不可或缺的参考指南。
29 0
|
2月前
|
开发框架 Oracle 关系型数据库
ABP框架使用Oracle数据库,并实现从SQLServer中进行数据迁移的处理
ABP框架使用Oracle数据库,并实现从SQLServer中进行数据迁移的处理
|
2月前
|
SQL Oracle 关系型数据库
MySQL、SQL Server和Oracle数据库安装部署教程
数据库的安装部署教程因不同的数据库管理系统(DBMS)而异,以下将以MySQL、SQL Server和Oracle为例,分别概述其安装部署的基本步骤。请注意,由于软件版本和操作系统的不同,具体步骤可能会有所变化。
138 3
|
2月前
|
Oracle 关系型数据库 数据库
Oracle数据恢复—Oracle数据库误删除的数据恢复方法
相信有很多oracle数据库用户都遇到过在操作Oracle数据库时误删除某些重要数据的情况,这个时候如果数据库没有备份且数据十分重要的,怎么才能恢复误删除的数据呢?北亚企安数据恢复工程师下面简单介绍几个误删除Oracle数据库数据的恢复方法。
|
2月前
|
SQL 存储 Oracle
TDengine 3.3.2.0 发布:新增 UDT 及 Oracle、SQL Server 数据接入
**TDengine 3.3.2.0 发布摘要** - 开源与企业版均强化性能,提升WebSocket、stmt模式写入与查询效率,解决死锁,增强列显示。 - taos-explorer支持geometry和varbinary类型。 - 企业版引入UDT,允许自定义数据转换。 - 新增Oracle和SQL Server数据接入。 - 数据同步优化,支持压缩,提升元数据同步速度,错误信息细化,支持表名修改。 - 扩展跨平台支持,包括麒麟、Euler、Anolis OS等。
84 0
|
2月前
|
SQL 存储 Oracle
Oracle数据库中游标的工作原理与优化方法
Oracle数据库中游标的工作原理与优化方法
|
3月前
|
Oracle 关系型数据库 数据库
oracle误删除数据的恢复方法
oracle误删除数据的恢复方法
35 0
|
4月前
|
消息中间件 Oracle 关系型数据库
实时计算 Flink版产品使用合集之从SQLServer到SQLServer进行数据迁移时,遇到反压,该如何处理
实时计算Flink版作为一种强大的流处理和批处理统一的计算框架,广泛应用于各种需要实时数据处理和分析的场景。实时计算Flink版通常结合SQL接口、DataStreamAPI、以及与上下游数据源和存储系统的丰富连接器,提供了一套全面的解决方案,以应对各种实时计算需求。其低延迟、高吞吐、容错性强的特点,使其成为众多企业和组织实时数据处理首选的技术平台。以下是实时计算Flink版的一些典型使用合集。
|
4月前
|
SQL Oracle 关系型数据库
Oracle 到OceanBase 数据迁移OMS最佳实践
本文介绍Oracle 到OceanBase 数据迁移OMS最佳实践。
340 0

推荐镜像

更多