`
cuishuangjia
  • 浏览: 155882 次
  • 性别: Icon_minigender_1
  • 来自: 沈阳
社区版块
存档分类
最新评论

SQLSERVER AND ORACLE

阅读更多

将公司系统从SqlServer 2K移植到Oracle 10g中的简要总结

时间: 2009-01-15 08:34来源: 博客园 阿修罗一平 点击:
 

    公司有一个系统是基于SqlServer 2k,现在,应客户要求,移植到Oracle 10g数据库。代码的扩展极其easy,三下五除二,搞定。就是 在将数据从SqlServer 2k导入到Oracle 10g数据库中时出现了一些问题。刚开始采用的方案是把表结构和数据导入到Sql脚本中,然后在 Oracle数据库中执行Sql脚本。这个过程涉及到数据库字段类型的转换问题,容易出错。后来采用使用SqlServer 2k的DTS 将数据从 SqlServer中导入到Oracle 10g中。工作就这么搞定了,为了方便以后数据类型的转换,方便以后做针对不同数据库的Sql脚本,我把 SqlServer 2k和Oracle 10g大部分数据类型都做了一下测试,当然现在只有SqlServer 2k和Oracle 10g数据对应关 系。不对应关系如下:

SqlServer 2k转换为Oracle 10g

列名 SqlServer数据类型 SqlServer长度 Oracle数据类型
column1 bigint 8 NUMBER(19)
column2 binary 50 RAW(50)
column3 bit 1 NUMBER(2)
column4 char 10 CHAR(10)
column5 datetime 8 DATE
column6 decimal 9 NUMBER(18)
column7 float 8 BINARY_DOUBLE
column8 image 16 BLOB
column9 int 4 NUMBER(10)
column10 money 8 NUMBER(19,4)
column11 nchar 10 NCHAR(10)
column12 ntext 16 NCLOB
column13 numeric 9 NUMBER(18)
column14 nvarchar 50 NVARCHAR2(50)
column15 real 4 BINARY_FLOAT
column16 smalldatetime 4 DATE
column17 smallint 2 NUMBER(5)
column18 smallmoney 4 NUMBER(10,4)
column19 sql_variant   BLOB
column20 text 16 CLOB
column21 timestamp 8 RAW(8)
column22 tinyint 1 NUMBER(3)
column23 uniqueidentifier 16 BLOB
column24 varbinary 50 RAW(50)
column25 varchar 50 VARCHAR2(50)



Oracle 10g 转换为SqlServer 2k

Oracle列名 Oracle数据类型 SqlServer列名 SqlServer数据类型 SqlServer数据长度
COLUMN1 BINARY_DOUBLE COLUMN1 float 8
COLUMN2 BINARY_FLOAT COLUMN2 real 4
COLUMN3 BLOB COLUMN3 image 16
COLUMN4 CLOB COLUMN4 ntext 16
COLUMN5 CHAR(10) COLUMN5 nchar 10
COLUMN6 DATE COLUMN6 datetime 8
COLUMN12 NUMBER COLUMN12 numeric 13
COLUMN13 NVARCHAR2(10) COLUMN13 nvarchar 10
COLUMN14 RAW(10) COLUMN14 varbinary 10
COLUMN15 TIMESTAMP(6) COLUMN15 datetime 8
COLUMN16 TIMESTAMP(6) WITH LOCAL TIME ZONE COLUMN16 datetime 8
COLUMN17 TIMESTAMP(6) WITH TIME ZONE COLUMN17 datetime 8
COLUMN18 VARCHAR2(10) COLUMN18 nvarchar 10
COLUMN7 INTERVAL DAY(2) TO SECOND(6) COLUMN7 nvarchar 30
COLUMN8 INTERVAL YEAR(2) TO MONTH COLUMN8 nvarchar 14
COLUMN9 LONG COLUMN9 ntext 16
COLUMN10 LONG RAW COLUMN10 image 16
COLUMN11 NCLOB COLUMN11 ntext


我们在做数据库移植设计的时候,完全DIY,可以考虑设计可扩展组件完成这种数据库表、列等对应关系的转换工作,那么以后再做系统移植中数据导入时就一劳永逸了。现在也没有时间做这种工作,不过感觉这还是挺有意义的一项工作。

在 转换过程中,出现了另一个问题,就是如果SqlServer 2k 中的表名含有小写,那么在导入到Oracle 10g后,需要修改表名,否则Sql语 句会执行失败。(导入后表名多了引号) 比如SqlServer 2k有一个表test,导入到Oracle 10g后显示的表名仍然为test,但是如 果你要查询test表中的数据时,按照正常情况下,你只用输入select * from test即可,可是现在却变成 select * from "test"。通过Oracle 10g的维护系统进入修改表名时,表名显示为带有引号的-"test"。出现这个问题,因 为表不是很多,所以我们将SqlServer 2k的表名都改为了大写,或者在Oracle中将表名改为大写,就ok了,需要注意这些细节。 Oracle 10g导入到SqlServer 2k中没有出现问题。  

分享到:
评论

相关推荐

    dbexpress 4.0 for sqlserver and oracle

    适用于delphi,C++的DBEXPRESS数据库连接引擎,本身的版本是6.23,在安装开发工具后,直接运行安装程序可方便快捷的安装开发工具里。开发的程序只需要和包含相应的DLL文件即可保持数据连接,勿需再安装庞大的数据库...

    oracle到sqlserver存储过程语法转换

    ### Oracle到SQL Server存储过程语法转换详解 在数据库迁移项目中,从Oracle迁移到SQL Server是一种常见的场景。本文旨在提供一份详细的指南,帮助开发者更好地理解这两种数据库系统在存储过程方面的语法差异,并...

    从SQLServer迁移大批量数据到Oracle

    - **数据导出**: 使用 SQL Server 的 Import and Export Data 功能进行数据导出。 **B. 数据导出** 1. **选择数据源**: 在 SQL Server 中选择数据源为 Microsoft OLE DB Provider for SQL Server。 2. **指定...

    sqlserver迁移到oracle

    常见的工具有Oracle Data Pump、SQL Server Import and Export Wizard、SSMA (SQL Server Migration Assistant) for Oracle等。这些工具可以帮助简化迁移过程,减少手动工作量,并尽可能减少错误。 4. **Oracle ...

    sqlserver2008链接ORACLE服务器驱动.rar

    本资源"sqlserver2008链接ORACLE服务器驱动.rar"正是为了解决这个问题,提供了SQL Server 2008连接到Oracle数据库所需的驱动程序和安装指南。 首先,我们要明白的是,SQL Server 2008本身并不直接支持Oracle数据库...

    sqlserver2005和oracle之间的导入导出

    - 接下来,使用SQL Server 2005的导入/导出向导(Import and Export Wizard)或Data Transformation Services (DTS)将数据从Oracle导入到SQL Server 2005。 - 在选择源提供程序时,应选择“Microsoft OLE DB ...

    Sqlserver、Oracle、MySql、PostgreSql、SqlLite数据库差异

    - **Sqlserver**、**Oracle**、**MySql**、**PostgreSql** 和 **SqlLite** 都提供了丰富的内置函数支持,包括数学、日期时间、字符串处理等多方面功能。 #### 五、分页 分页是数据库中常见的需求之一,不同的...

    oracle与SQL server的语法差异总结

    Oracle 和 SQL Server 是两种广泛应用的关系型数据库管理系统,它们在语法和功能上存在一定的差异。以下是对两者主要区别的一些详细说明: 1. **伪列 ROWNUM**: 在Oracle中,ROWNUM是一个伪列,用于获取结果集中...

    SQL_SERVER2ACCESS.rar_oracle

    在描述中提到的“根据不同字段的具体值查找数据库(SQL Server AND Oracle)的数据”,这是数据库查询的基础,涉及到SQL语言的使用。在SQL中,我们可以使用`WHERE`子句来根据特定字段的值筛选记录。例如,如果我们有...

    Oracle Database Transactions and Locking Revealed(Apress,2014).

    Oracle Database Transactions and Locking Revealed provides much-needed information for building scalable, high-concurrency applications and deploy them against the Oracle Database. Read this short, ...

    sqlserver,mysql,oracle三种数据库的分页查询

    本文将深入探讨SQL Server、MySQL和Oracle这三种主流数据库系统中的分页查询实现方式。 首先,我们来看SQL Server。SQL Server提供了一种称为"TOP"的关键字来实现分页。例如,如果我们想获取第1页(假设每页有10条...

    SQL Server vs Oracle 存储过程语法转换1.2.docx

    在SQL Server和Oracle数据库之间进行存储过程和函数的语法转换是一项常见的任务,特别是在数据库迁移或跨平台开发时。以下是一些关键的语法差异和转换规则: 1. **变量声明**: - SQL Server中,变量必须以`@`符号...

    Beginning SQL_ Differences Between SQL Server and…….ppt

    【标题】:初识SQL:SQL Server与Oracle之间的差异 【描述】:这份资料主要针对SQL初学者,尤其是从SQL Server环境转向Oracle的用户,详细介绍了两者在语法、功能和概念上的不同之处。 【标签】:SQL 【正文】: ...

    SQL 寫法注意事項 SQLServer與Oracle

    在SQLServer与Oracle这两个不同的数据库管理系统中,编写高效的SQL语句是至关重要的,因为它直接影响到查询速度和资源利用率。以下是一些关于SQL写作注意事项的关键点: 一、查询参数(SARGs)规则: 在SQL Server...

    Professional ADO.NET 2: Programming with SQL Server 2005, Oracle, and MySQL 书配代码

    《Professional ADO.NET 2: Programming with SQL Server 2005, Oracle, and MySQL》是一本深入探讨ADO.NET 2.0与SQL Server 2005、Oracle和MySQL数据库交互的专业书籍。这本书旨在帮助开发者掌握如何高效、稳定地...

    springboot在项目中集成 mysql,sqlserver多数据源项目源代码.zip

    @ConfigurationProperties(prefix = "spring.datasource.sqlserver") public class SqlServerDataSourceConfig { // properties... @Bean(name = "sqlServerDataSource") public DataSource getDataSource() { ...

    在SQL Server下访问Oracle数据库的方法.pdf

    当组织内部使用不同的数据库管理系统(DBMS),如SQL Server和Oracle,可能需要一个数据库访问另一个数据库中的数据。本文档将探讨在Microsoft SQL Server环境下访问Oracle数据库的不同方法和技术,包括使用OLE DB...

    sql and oracle备份以及还原

    本篇文章将详细讲解SQL和Oracle数据库的备份及还原方法,特别关注Oracle中的exp/imp工具。 Oracle的exp/imp工具是早期的数据库导出和导入工具,它们主要用于数据的迁移、表空间的转移以及逻辑备份。虽然随着技术的...

Global site tag (gtag.js) - Google Analytics