移植SQL server数据库对象到Oracle的操作说明

移植之平台和相关工具

OS:Windows Vista

DBMS:Sql Server 2005 Plus Oracle 10g for Vista

Migration Tool:Oracle Sql developer 1.5.3.57.83

Sql Develper和Migration Workbench简单介绍

以下是摘自Oracle官网:

Ⅰ Oracle SQL Developer 是一个免费的图形化数据库开发工具。使用 SQL Developer,您可以浏览数据库对象、运行 SQL 语句和 SQL 脚本,并且还可以编辑和调试 PL/SQL 语句。您还可以运行所提供的任何数量的报表,以及创建和保存您自己的报表。SQL Developer 可以提高工作效率并简化数据库开发任务。

SQL Developer 可以连接到任何 9.2.0.1 版和更高版本的 Oracle 数据库,并且可以在 Windows、Linux 和 Mac OSX 上运行。

Ⅱ Oracle SQL Developer 移植工作台是重新开发的新工具,它极大地扩展了原来的 Oracle 移植工作台的功能和可用性,可以将 Microsoft Access、Microsoft SQL Server 和 MySQL 数据库移植到 Oracle。

移植之驱动配置

1) 检查下你装的Sql Developer的版本,我的是Oracle Sql developer 1.5.3。因为这个工具是免费的,之前我在1.2版本上测试没有通过,所以这里强调下。

2) 就是配置Sql Developer的运行环境,因为如果设置不好,我们将不能连接第三方数据库(非oracle数据库),本文指的就是sql server 2005.

背景知识1:不加载驱动之前,如果我们新建立一个数据库连接时,会出现如下窗口。这里可以连接的数据库

仅仅是Oracle和Access (即是两种默认的数据库)

见图(一)

图(一)

怎么可以让SQL Developer可以访问其它数据库?

答案是:添加JDBC 驱动,使其可以访问诸如MS SQL、My Sql、Sybase等数据库.

添加三方数据库支持的方法

点击sql developer的菜单的 选项→ 工具(Tools)→ 首选项(Prefences).见图(二)。

图(二)

点击弹出对话框中Database(数据库)选项→Third Party JDBC Drivers→添加条目

(即是你解压的jtds-1.2.2-dist目录下jtds-1.2.2.jar所在的目录名称,

注意要指定到jtds-1.2.2.jar这个文件.)

********************************************************************************************************************************

补充说明,这个应该先说的. 即是我们首先要准备好MS SQL的JDBC驱动.

背景知识2 关于添加条目(

1 这里需要先下载驱动程序

打开jDTS JDBC driver主页(http://jtds.sourceforge.net/)→(点击主页里的下载选项)Download→点击jDTS右边的download→(进入下一页)点击jtds-1.2.2-dist.zip 完成下载

操作见图(三)

图(三)

2 解压刚刚下载的jtds-1.2.2-dist,确认该文件夹下有名称为jtds-1.2.2.jar的文件。

3 这个jtds-1.2.2.jar就是上面提到的 添加项目 对应的文件。

4 添加过程见图(四)

)

图(四)

********************************************************************************************************************************

小注:

Append: 如果出现如下的错误(即是SQL SERVER的window验证方式不可用的问题):

java.sql.SQLException: I/O Error: SSO Failed: Native SSPI library not loaded. Check the java.library.path system property.

可以按照而下方法解决.

1)从jtds-1.2.2-dist.zip里拷贝'jtds-1.2.2-dist\x86\SSO\ntlmauth.dll 到 SQL Developer安装目录下的>\jdk\jre\bin.

2)重启SQL Developer.

至此我们仅仅是做了可以建立sql server的连接的准备工作,(My sql,Sybase等的下载相关驱动见下说明)。

My sql 的JDBC驱动 下载链接如下:

mysql-connector-java-5.0.4.tar.gz(或.zip)压缩包内含有个mysql-connector-java-5.0.4-bin.jar的文件.

Sybase的JDBC驱动 下载链接如下:

或则点击Sybase中国官网的链接,如下:

对应的下列条款

真正的开始

以上只是配置Oracle Sql Developer可以连接Sql server(MS SQL),这是前提.之下的才是移植的步骤

Step 1 :creat a sql server connect

方法同建立Oracle的连接类似,这里不再赘述。截图见图(五):

图(五)

补注:这里可能出现连接到sql server2005报错的现象(Faiture-Cannot connect to Microsoft SQL Server on localhost). 请确定你打开了sql server的1433端口(默认).

方法如下:

如果你的OS是Vista的,请先切换 控制面板到经典视图.

... ....控制面板 →  管理工具 → 计算机管理 → 服务与应用程序(左侧选项) → SQL Server 2005 Network Configuration(点开上一步的节点) → 设置TCP/IP属性(右边面板处) → 点击IP address 选项 → 设置IPAll中的TCP Port为1433 → 确定后 重新启动SQL Server服务即可.

① 验证1433端口打开的方法:

Win(微表)+R(或则 点击开始→运行) → 输入CMD → netstat/na → 即可以查看1433端口有没有打开..

② 验证sql developer连接到sql server

输入完连接名(比如sa@sqlserver),用户名(比如SA),密码,主机名(比如localhost)及端口(比如1433)后,如果你点击Retrieve database后,右边的下拉框可以选择数据库,则证明连接成功了.

③再小注 默认如果不Retrieve database,则连接的是Master数据库

Step 2 Create user with system permission

建立个Oracle的system帐号(或则具有类似sys权限的用户)连接

建立此连接的用途:

Ⅰ执行创建下面要用到用户的migration的SQL语句。

Ⅱ 执行移植过程中产生的DDL语句

Ⅲ 以及验证整个过程是不是成功,见图(六)

图(六)

Step 3 create migration user

方法:

在Step 2的连接状态下,执行以下Sql 代码

--Creating user migration

CREATE USER migration IDENTIFIED BY migration

DEFAULT TABLESPACE users TEMPORARY TABLESPACE temp;

GRANT CONNECT, RESOURCE, CREATE VIEW, CREATE PUBLIC SYNONYM

TO migration WITH ADMIN OPTION;

GRANT ALTER ANY ROLE, ALTER ANY SEQUENCE,

ALTER ANY TABLE, ALTER TABLESPACE, ALTER ANY TRIGGER,

COMMENT ANY TABLE, CREATE ANY SEQUENCE, CREATE ANY TABLE,

CREATE ANY TRIGGER, CREATE ROLE, CREATE TABLESPACE,

CREATE USER, DROP ANY SEQUENCE, DROP ANY TABLE,

DROP ANY TRIGGER, DROP TABLESPACE, DROP USER,

DROP ANY ROLE, GRANT ANY ROLE, INSERT ANY TABLE,

SELECT ANY TABLE, UPDATE ANY TABLE

TO migration;

--解决用户migration不能登录的问题

GRANT CREATE SESSION TO migration WITH ADMIN OPTION;

step 4 create migration connect and link a repository

完成step 3之后,创建migration连接(用户名migration 密码migration)方法和step 2类似。

创建Repository的方法,sql developer→Migration→Repository Management→Create Repository

关联Repository的方法,右击Migration_test(我的migration帐号的连接名)→选择Migration Repository→

Associate Migration Repository。见下图(七)

图(七)

Step 5 Capture Microsoft Sql Server

这时你右击之前建立的sql server的连接(我的例子名称是liang_server)→选择Capture Microsoft Sql Server

这时你再看左边栏下的Captured models,将多了个下图样的节点

图(八)

Step 6 Convert to Oracle model

右击Step 5刚刚建立的Capture models→选择Convert to Oracle model,这时左边栏的Converted models将多个节点。见下图(九)

图(九)

Step 7 Generate Sqls

右击Step 6下的Converted model→点击Generate(生成Oracle能识别的SQL语法)→执行该DDL语句

(在之前建立的System帐号的连接下做,或则有类似sys system权限的帐号连接),见图(十)

图(十)

小注:这里将生成一个和oracle对应的用户,比如我的用户名是Dbo_testshen,密码和用户名一致。

当然自己可以修改该脚本 并执行。

这时,表结构已经在该用户下产生了。如果你迫不及待要看此结构。可以通过以下语法去查看(System连接状态下)

Desc dbo_testshen.testa.

将会显示出testa表的结构。

Step 8 Create new connect

建立Step 7中生成的了Oracle用户的连接,方法类似Step 2.我这里生成的用户是Dbo_testshen,不再详说。

Step 9 Move Data

右击Step 6下的Converted model(转移数据至Oracle中)→选择Move Data。如下图(十一、十二)

图(十一)

↓         ↓          ↓

图(十二)

Step 10 Test

点击Ok,并做测试(查看数据是否转移到Oracle中)

Test Case 1:

select table_name from user_tables(Sql语句如下)

结果如下:

TABLE_NAME

------------------------------

CSVIMP

FORYOU

MYTESTFORMATFILES

TEST_REPLACE

TESTA

TESTB

TESTC

TESTFULLJOIN1

TESTFULLJOIN2

FORTEST

TESTDATATABLE

TB22

DOG_TEST

13 rows selected

Test Case 2:

select * from testb;

结果如下:

EMPID                  EMPADDR

---------------------- --------------------

1                      上海

2                      淮南

3                      合肥

4                      黄山

OverOverOverOverOverOverOverOverOverOverOverOverOverOverOverOverOverOverOver

---对应DBO用户...

updated 12 30

Updated 09/03/24

swisssql-sql server to oracle,Sql Server移植到Oracle之Migration Workbench相关推荐

  1. oracle空值判断 =,Oracle,sql server的空值(null)判断

    Oracle,sql server的空值(null)判断 sql server 替换null:isnull(arg,value) 如:select isnull(price,0.0) from ord ...

  2. Mysql Oracle Sql server 三种数据库默认端口

    ** Mysql Oracle Sql server 三种数据库默认端口 ** SQL Server默认端口号为:1433 URL:"jdbc:microsoft:SQL Server:// ...

  3. oracle SQL认证考试,sql认证(sql server认证考试)

    1.Windows 身份复验证模式 当用户通过 Microsoft Windows 用户帐户进行连接时,SQL Server 使用 Windows 操作系统中的信息验证帐户名和密码.这是默认的身份验证 ...

  4. sp_addlinkedserver oracle,SQL Server 远程连接服务器详细配置(sp_addlinkedserver)

    远程链接服务器详细配置 --建立连接服务器 EXEC sp_addlinkedserver '远程服务器IP','SQL Server' --标注存储 EXEC sp_addlinkedserver ...

  5. SQL语法范例大全(SQL Server、Oracle 通解)

    [书名]SQL语法范例大全(SQL Server.Oracle 通解) [作者]希赛IT发展研究中心  组编 黄少华,陈翠娥  编著 [ISBN]978-7-121-07396-0 [出版社]电子工业 ...

  6. ExcelToDatabase:批量导入Excel文件到MySQL/Oracle/SQL Server数据库的自动化工具

    ExcelToDatabase:批量导入Excel到MySQL/Oracle/SQL Server数据库的自动化工具 简介 ExcelToDatabase 是一个可以批量导入excel到mysql/o ...

  7. 用sql改oracle表结构,SQL server 表结构转Oracle SQL脚本

    SQL server 表结构转Oracle SQL脚本 /****** Object: StoredProcedure [dbo].[getOracle] Script Date: 2019/7/25 ...

  8. oracle中句柄,释放句柄 – 提供7*24专业数据库(Oracle,SQL Server,MySQL等)恢复和Oracle技术服务@Tel:+86 13429648788 - 惜分飞...

    在很多时候,检查系统时候发现,由于某个Oracle的trace文件导致磁盘空间告警,因为业务需要不能让数据库down下来.这个时候你想到的方法可能是直接删除掉这个trace文件,如果是win系统,那恭 ...

  9. oracle 00600 kccpb,惜分飞 - 提供7*24专业数据库(Oracle,SQL Server,MySQL等)恢复和Oracle技术服务@Tel:+86 13429648788...

    在哪些情况下,数据库不启动附加日志不能正常的被Logminer捕获到的,这里做了一个简单的测试,说明在不启用附加日志的情况下,很多操作不能被捕获,不仅仅是行迁移的数据记录.当然本实验仅供参考,因为在不 ...

最新文章

  1. Python 修改tuple元组提示:TypeError: ‘tuple‘ object does not support item assignment. 问题原因
  2. 14、Java Swing星座选择器界面的实现
  3. GeoServer简介、下载、配置启动、发布shapefile全流程(图文实践)
  4. 数据库-分组语句及用法
  5. java jvm内存地址_深入Java虚拟机——JVM内存详解
  6. NET问答: 为什么仅有 getter 的属性,还可以在构造函数中赋值 ?
  7. Stream filter过滤案例
  8. 07树莓派下的浏览器
  9. CUDA零拷贝内存(zerocopy memory)
  10. 视觉SLAM——英特尔D435i相机内参矩阵标定
  11. import time python_Python的import导入与时间
  12. Rust 学习笔记——智能指针
  13. (8)Redis-Cluster集群理论及实践【中】
  14. List集合排序(Lambda表达式)
  15. 人工智能之-产生式系统
  16. 计算机辅助工业设计应用软件,计算机辅助工业设计软件(CAID)ProE与Rhino对比研究...
  17. word设置页眉页码 首页没有页眉(终于搞懂了)
  18. 计算机学院的入场词,大学校运会入场词
  19. vuepress侧边栏配置_VuePress默认主题配置(default theme config) - VuePress中文网
  20. 财路网每日原创推送:区块链金融为何广受互联网巨头追捧?

热门文章

  1. SQL注入--报错和盲注
  2. 【电机】使用Simulink建立BLDC反电动势测量的简单模型
  3. Chart.js使用(一)
  4. Win10默认浏览器没有edge的选项该怎么办?
  5. 使用 tree 命令生成目录
  6. 使用Visual Studio调试BGFX的Shader
  7. c#使用PortableDeviceApiLib读取便携式设备(WPD:Windows Portable Devices)信息
  8. Java集合数据类型
  9. 阿里被转载上100W次的Java面试题教程,已助我拿下9家大厂offer
  10. 微积分:如何理解方向导数与梯度?