.部分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)

sql server和oracle的差异的更多相关文章

  1. 数据库 --> SQL Server 和 Oracle 以及 MySQL 区别

    SQL Server 和 Oracle 以及 MySQL 区别 三者是目前市场占有率最高(依安装量而非收入)的关系数据库,而且很有代表性.排行第四的DB2(属IBM公司),与Oracle的定位和架构非 ...

  2. SQL Server和Oracle数据类型对应关系

    在工作中,有时会遇到跨库传输数据的情况,其中 SQL Server 和 Oracle 之间的数据传输是比较常见的情况. 因为 SQL Server 和 Oracle 的数据类型有些差异,这就要求我们在 ...

  3. 关于sql server远程访问Oracle数据库 OpenQuery查询返回多条数据的问题

    在Sql Server远程访问Oracle 中的数据库表时: 远程语法通常为: select * from OpenQuery(Oracle链接服务器名称,‘查询语句’) eg: select * f ...

  4. Win7 64位下sql server链接oracle的方法

    继上一次mysql同步sql server后,这一次需要将Oracle同步到sql server上来,方案相似,只是在sql server链接oracle的时候费了很多时间. 一.测试环境 本方案实现 ...

  5. sql server 向oracle导入表

    选择相应的数据库,右键,任务,选择导出数据 点击下一步 选择Microsoft OLE DB Provider for Sql Server 选择下一步 目标选择.net Framework data ...

  6. 【转】SQL Server与Oracle的区别

    转自:http://soft.chinabyte.com/database/255/12258255.shtml SQL Server与Oracle的区别 2012-02-10 00:00 中国IT实 ...

  7. sql server 与oracle数据互导的一种思路--sql server链接服务器

    思路:通过在sql server数据库中添加链接服务器,可以远程查询oracle数据库的表环境准备,安装sql server数据库,并安装好oracle驱动,在配置好tnsname文件中配置好orac ...

  8. 使用 Oracle GoldenGate 在 Microsoft SQL Server 和 Oracle Database 之间复制事务

    使用 Oracle GoldenGate 在 Microsoft SQL Server 和 Oracle Database 之间复制事务 作者:Nikolay Manchev 分步构建一个跨这些平台的 ...

  9. SQL Server连接Oracle详细步骤

    http://blog.csdn.net/weiwenhp/article/details/8093105 我们知道SQL Server和Oracle其实很多原理都类似.特别是一些常用的SQL语句都是 ...

随机推荐

  1. Linux配置邮箱发送(MUTT/MSMTPQ)

    配置邮箱发送 http://www.ilanni.com/?p=10589

  2. hdu 1811 Rank of Tetris (并查集+拓扑排序)

    Rank of Tetris Time Limit: 1000/1000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Others)To ...

  3. 【转载】如何在德州仪器网站查找和下载PCB封装

    德州仪器的网站做得相当不错,查找IC资料和下载IC封装样样给力.那么如何在TI网站上能够快速查找到自已需要的PCB封装呢?下面我来告诉你. 1.       在浏览器中输入网址http://weben ...

  4. java--常用类summary(三)

    /* 1:正则表达式(理解) (1)就是符合一定规则的字符串 (2)常见规则 A:字符 x 字符 x.举例:'a'表示字符a \\ 反斜线字符. \n 新行(换行)符 ('\u000A') \r 回车 ...

  5. Mysql复制表格

    1.复制表结构及数据到新表 CREATE TABLE 新表 as SELECT * FROM 旧表 不过这种方法的一个最不好的地方就是新表中没有了旧表的primary key.Extra(auto_i ...

  6. C++构造函数和析构函数调用虚函数时都不会使用动态联编

    先看一个例子: #include <iostream> using namespace std; class A{ public: A() { show(); } virtual void ...

  7. .NET 向SQL里写入非Text类型

    一般来说,在更新DataTable或是DataSet时,如果不采用SqlParameter,那么当输入的Sql语句出现歧义时,如字符串中含有单引号,程序就会发生错误,并且他人可以轻易地通过拼接Sql语 ...

  8. mysql 无法启动1067

    关键字:mysql无法启动办事,mysql卡死,InnoDB"" registration as a STORAGE ENGINE failed.Unknown/unsupport ...

  9. 查询使用NoLock

    当我们在操作数据库的时候,无论是查询还是修改数据库的操作我们都习惯使用using(var db=new XXXDB()){},但是如果仅仅是做查询,最好是使用NoLock,因为NoLock使用的是共享 ...

  10. 谈谈CSS的布局,display、position、float

    前言 前端一直是我的一个很大的缺憾,这段时间痛顶思痛,决定好好的把前台的东西加强,这不,在学习了一段时间js之后,在做一些小练习,却发现最基本的一些css知识却还不了解,所以便有了这篇博文. 块级元素 ...