`
bayueduannai
  • 浏览: 1431 次
  • 性别: Icon_minigender_1
  • 来自: 上海
最近访客 更多访客>>
文章分类
社区版块
存档分类
最新评论

[转]SQL SERVER转换到ORACLE应注意的几点问题

阅读更多
1.部分SQL语句差异

(1)SQL:select top 10 * from table
     ORA: select * from table where rownum<11
(2)SQL:Select * from t1 join t2 on t1.c1=t2.c1
     ORA: select * from t1,t2 where t1.c1=t2.c1
(3)select * from t1 left join t2 on t1.c1=t2.c1
     ORA: select * from t1,t2 where t1.c1=t2.c1(+)
(4)SQL:select * from t1 right join t2 on t1.c1=t2.c1
     ORA: select * from t1,t2 where t1.c1(+)=t2.c1

2. 其他技术差异
    GPRS技术可以应用的领域有:
    ◆在oracle中,delete语句中的from从句中不能涉及到多个表,要基于多个表进行删除记录只有使用子查询。;
    ◆在oracle中,update语句不能基于多个表进行修改数据,要基于多个表进行修改数据只有使用子查询;
    ◆在oracle中,存储过程不能返回记录集,如果要存储过程返回记录集,可以创建视图,可以单独执行select语句  (注意:并不是说在存储过程中不能使用select语句,但select只能用于以下情况:insert into table select * from t1 /select col1 into a from table where ……(a为一变量));
    ◆在oracle中insert 的语法是:insert into table values() 或insert into table select * from t1;;
    ◆Oracle中的日期型常量必须用to_date()函数得到。;
    ◆Dual表是一个虚拟表,专门用于测试的目的用,注意dual表的用法:
在sql server中,如果我们项测试某个函数,例如:select convert(int,’13’) ,在 oracle 中这种表示方法是错误的,应表示为:select to_number(‘13’) from dual;;
    ◆得到相差的天数:两个日期相减,再用ceil或floor函数取整得到相差的月数:months_between()
    ◆数据类型的转换;
    ◆ORACLE中对象名不能超过30个字符。ORACLE中界限符是“”(对应SQLSERVER中的[ ])(我的建议是:最好不要是用界限符,能避免实用系统的保留字就尽量避免);
    ◆ORACLE中空字符串被看成null;
    ◆ORACLE中字符的比较是区分大小写的;
    ◆视图中如果用了order by ,并且order by 从句中的字段名都是别名,那么,在显示视图时必须显示出order by 子句中的所有字段,例如,有下面这样一个视图:
create view v
as
select name as c1,address from t1 order by c1
那么在select 该视图时
select c1,address from v   是正确的,   select address from v是错误的;
    ◆关于临时表的问题
      在sqlserver中 create table #table1 (c int);
      在oracle 中解决办法是:
create global temporary table table1(c int) on commit preserve rows
这个table1在数据库中是永久存在的,所以不要是用drop命令,在你的程序中在对这个表进行任何操作之前,先执行truncate table table1,切忌不要用drop命令删除此表。;
    ◆http://technet.oracle.com/doc/server815.htm这个网站有许多在线教程,但一定要先注册;

    3. 数据类型转换

SQL SERVER ORACLE
    bigint       NUMBER (19 ,0)   
    binary  (50)      RAW (50)   
    bit       NUMBER (1, 0)   
    char  (10)    CHAR (10)   
    datetime       DATE   
    decimal (18 , 0)      NUMBER (18, 0)   
    float       FLOAT   
    image      BLOB
    int      NUMBER (10, 0)   
    money       NUMBER (19 ,4)   
    nchar  (10)    CHAR (20)   
    ntext    CLOB
    numeric (18 , 0)      NUMBER (18 ,0)   
    nvarchar  (50)    VARCHAR2 (100)   
    real       FLOAT   
    smalldatetime       DATE   
    smallint       NUMBER (5, 0)   
    smallmoney       NUMBER (10, 4)   
    sql_variant       LONG RAW   
    text    CLOB
    timestamp       RAW (8) NOT   
    tinyint       NUMBER (3 ,0)   
    uniqueidentifier       LONG RAW   
    varbinary  (50)     RAW (50)   
    varchar  (50)  VARCHAR2 (50) 
分享到:
评论

相关推荐

    sqlserver自动生成sql语句工具sqlserver转oracle

    描述中提到的"sqlserver转oracle"则是指将SQL Server数据库的内容迁移到Oracle数据库的过程。这个过程涉及到SQL语法的转换,因为SQL Server和Oracle虽然都遵循SQL标准,但各自的语法特性和函数库有所不同。例如,SQL...

    SQLServer数据库导入Oracle

    在IT行业中,数据库迁移是一项常见的任务,特别是在不同的数据库系统之间,如从SQL Server迁移到Oracle。这个过程涉及多个步骤和注意事项,确保数据的完整性和一致性。以下是对标题和描述中所述知识点的详细说明: ...

    透过SQL Server 2008访问Oracle 10g的配置方法

    3. 配置 Oracle 客户端 tnsnames.ora 文件,其中需要注意文件中的数据库别名“ORADB”,该名称在下文创建 Linked Server 时将会使用到。 在 tnsnames.ora 文件中,需要添加以下内容: ORADB = (DESCRIPTION = ...

    java实现oracle和sqlserver数据库转换(包含大数据)

    在Java中实现这样的转换,主要涉及到以下几个关键知识点: 1. **JDBC驱动**:Java Database Connectivity (JDBC) 是Java访问数据库的标准API。对于Oracle,我们需要Oracle JDBC驱动(如ojdbc),而对于SQL Server,...

    SQLServer2000到Oracle11G存储过程转换技术探究.pdf

    【SQLServer2000到Oracle11G存储过程转换技术探究】 在IT行业中,数据库管理系统的选择往往因项目需求或企业偏好而异。SQLServer2000与Oracle11G作为两种广泛应用的关系型数据库系统,它们之间的存储过程在语法、...

    mysql转化成sql server sql转化成mysql工具

    总结,MySQL到SQL Server或反之的转换涉及到数据库对象的结构和数据的迁移,这可以通过专门的工具实现,如`mss2sql.rar`和`mysqltomssql.zip`。转换过程中需要注意语法差异、数据一致性、安全性和测试验证。理解这个...

    Oracle和SQL_Server的语法区别

    在将 Oracle 数据库中的数据操作语言(DML)语句和过程化语言(PL/SQL)程序迁移至 SQL Server 时,需要考虑以下几个关键点: 1. **DML 语句的语法验证**: - 对于 SELECT、INSERT、UPDATE 和 DELETE 语句,首先要...

    Sql Server 2000 数据迁移至Oracle(含NClOB特殊字段)

    在迁移含有NCLOB特殊字段的数据时,需要注意以下几点: - **NCLOB字段兼容性:** Oracle数据库中的NCLOB字段主要用于存储大量的Unicode文本数据。在迁移过程中,需要确保Sql Server 2000中的相应字段能够正确转换为...

    ORACLE移植到SQL SERVER上的软件

    在实际迁移过程中,有几点需要注意: 1. 数据库兼容性:确保目标SQL Server版本与源Oracle数据库的数据结构和功能相匹配。 2. 数据类型映射:Oracle和SQL Server的数据类型有所不同,SSMA会自动进行映射,但可能需要...

    SQLSERVER导入ORACLE数据库

    可以通过创建一个SSIS包,定义从Oracle源连接到SQL Server目标的转换和加载过程。在设计数据流时,可以处理数据清洗、类型转换等任务。 2. **使用Oracle的导出和SQL Server的导入命令:** Oracle提供`expdp`和`...

    SQL Server导入Oracle数据库

    通过创建DTS包,我们可以定义数据源、目标以及转换规则,实现数据从SQL Server到Oracle的迁移。步骤包括设计数据流任务,配置连接管理器,设置源和目标数据,以及运行包进行数据迁移。 2. **使用第三方工具**:市场...

    Oracle数据库表转换为Mysql

    在转换过程中,需要注意以下几点: (1)表结构的更改:在转换过程中,可能需要手动更改表结构,以适应Mysql数据库的要求。 (2)数据长度的限制:在转换过程中,需要注意数据长度的限制,以免出现数据截断或溢出...

    oracle与sql_server数据类型对应关系.doc

    在使用SQL Server订阅功能将数据复制到Oracle订阅服务器时,存在以下几点限制,需要特别注意: 1. **表名含有空格**:若表名包含空格,则复制过程会因为Oracle错误ORA-00903:无效的表名称,而导致复制失败。 2. *...

    sql转oracle数据库工具 V4.0 绿色免费版

    总结来说,"SQL转Oracle数据库工具 V4.0 绿色免费版"是一个实用的数据库迁移工具,它简化了SQL到Oracle的转换过程,对于学习者和小型项目具有很高的价值。但在考虑生产环境的使用时,需要权衡其功能限制和可能的风险...

    SQL Server 2005 盛宴系列之十七:实现SQL Server与Oracle之间数据复制.zip

    在实现SQL Server与Oracle间的数据复制时,需要考虑以下几点: 1. **接口和驱动**:由于SQL Server和Oracle是两个不同的数据库系统,它们之间的数据复制通常需要中间件或者定制的接口。例如,可以使用微软的ODBC...

    SQL Server 2005 Solutions - Migration - Oracle - FAQ

    以下是对SQL Server 2005 Solutions - Migration - Oracle - FAQ中的几个核心知识点的深入解析。 ### SSMA:SQL Server Migration Assistant SSMA是SQL Server Migration Assistant的简称,它定义并自动化了数据库...

    Mysql 向 SQL Server 2008 迁移 SSMA

    MySQL到SQL Server 2008的迁移是一个常见的数据库转换任务,这通常涉及到大量的数据迁移、结构转换以及应用程序的适配。SQL Server Migration Assistant (SSMA) 是微软提供的一款工具,专为帮助用户从其他数据库系统...

    microsoft sqlserver 2008汉化

    在“microsoft sqlserver 2008汉化”这个主题中,我们关注的是SQL Server 2008的中文版本。这对于中国用户来说非常重要,因为它使得非英语环境下的用户能够更方便地理解和使用该系统。汉化版不仅包括了界面语言的...

    Oracle密码过期,sql server备份排查

    本文将重点讨论两个主要的数据库管理系统:Oracle和SQL Server,以及如何处理与它们相关的常见问题——密码过期和数据库备份。以下是对这两个主题的详细阐述: 1. Oracle密码过期: Oracle数据库系统为了确保安全性...

    百万级数据在Excel和Sql数据库之间相互导入、导出

    在进行数据导入导出时,需要注意以下几点: - **数据类型匹配**:确保Excel和SQL Server中的数据类型一致,避免因类型不匹配导致的导入失败或数据丢失。 - **分批处理**:对于非常大的数据集,可以考虑分批导入,...

Global site tag (gtag.js) - Google Analytics