`
icess
  • 浏览: 252676 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

浅析Oracle和SQL Server

阅读更多

浅析Oracle和SQL Server

文章出处:http://www.2168.net/html/database/oracle/25701/   发布时间:2006-02-17


 
T-SQL是SQL Server的语言引擎,而Oracle的语言引擎却是PLSQL。这两种查询语言都对ANSI SQL-92标准进行了扩展以提供额外的支持力度。你所创建的应用程序几乎都要用到这些补充特性。本文就对最常用的、非标准的Oracle扩展进行了说明,同时还要介绍下如何对这些扩展进行转化以用在SQL Server环境下。

列的选择

用PLSQL执行数据查询的时候,FROM子句是必须的,这同SQL Server的要求是一样的。 SELECT语句必须选择针对的数据表。在Oracle数据库内有一种特殊的表Dual。Dual表是Oracle中的一个实际存在的表,任何用户均可读取,常用在没有目标表的Select中。Dual表由Oracle连同数据字典一同创建,所有的用户都可以用名称DUAL访问该表。这个表里只有一列DUMMY,该列定义为VARCHAR2(1)类型,有一行值X。从DUAL表选择数据常被用来通过SELECT语句计算常数表达式,由于DUAL只有一行数据,所以常数只返回一次。

Oracle下的DUAL查询如下所示:
SELECT ‘x’ FROM dual
而对等的SQL Server查询则是下面这个样子:
SELECT ‘x’

以下是null相关的知识,用到了dual:
SQL> select 1 from dual where null=null;
没有查到记录
SQL> select 1 from dual where null='';
没有查到记录
SQL> select 1 from dual where ''='';
没有查到记录
SQL> select 1 from dual where null is null;
1
---------
1
SQL> select 1 from dual where nvl(null,0)=nvl(null,0);
1
---------
1
查看当前连接用户
SQL> select user from dual;

查看当前日期、时间
SQL> select sysdate from dual;

连接

Oracle用|| 符号作为连接符,而SQL Server的连接符是加号:+ 。

Oracle查询如下所示:
Select ‘Name’ || ‘Last Name’ From tableName

对应的SQL Server查询如下所示:
Select ‘Name’ + ‘Last Name’

数字取舍

Oracle数据库内有一个TRUNC函数,该函数返回m位十进制数的n位;如果省略m则n就是0位。m的值可以为负,表示截去小数点左边m位数字。

在SQL Server下可以用Round或者Floor。

以下是Oracle查询:
SELECT TRUNC(15.79,1) "Truncate" FROM DUAL;

下面是同类查询的SQL Server版本:
SELECT ROUND(15.79, 0) rounded , ROUND(15.79, 0,1) truncated
SELECT FLOOR(ROUND(15.79, 0)), FLOOR(ROUND(15.79, 0,1) )

数字转换

Oracle的TO_CHAR函数可以把n位NUMBER数据类型转换为VARCHAR2 数据类型,同时采用可选的数字格式。

SQL Server则通过STR函数返回数字转换之后的字符数据。不过,该函数不具方便的Format参数。

Oracle查询如下:
SELECT to_char(123.45 ,99999999999999) from tab
SELECT to_char(EXPIRY_DATE,'DDMONYYYY') from tab

以下是SQL Server版本的查询:
SELECT STR(123.45, 14)
SELECT STR(round(123.455 , 2),12,2)
SELECT CAST(REPLACE((CONVERT(varchar(12) , EXPIRYDATE, 106 )),' ' , '') as varchar(9))

LENGTH和LEN

以下是Oracle的查询:
SELECT LENGTH('SQLMAG') "Length in characters" FROM DUAL;

以上查询在SQL Server下是这样写的:
SELECT LEN('SQLMAG') "Length in characters"

日期

以上两种系统都具有各自的当前日期和时间格式。

Oracle取得日期和采用如下方式:
SYSDATE

SQL Server则是这样的:
GETDATE()

你可以用各种语法操作日期。以下的代码对Oracle日期值中的月份进行了格式调整(返回日期再加上n月):
Select add_months(sysdate,12) from dual

SQL Server则是如下完成同等功能的:
Select dateadd(mm,12,getdate())

数据的减法也不同。以下代码在Oracle中直接对数据进行减法操作:
SELECT sysdate -add_months(sysdate,12) FROM dual

SQL Server则是这样做的:
SELECT datediff(dd, GetDate(),dateadd(mm,12,getdate()))

评论

相关推荐

    浅析Oracle对SQL Server的比较优势.pdf

    文章从数据库的必要性和多样性出发,探讨了在多个数据库平台和解决方案中Oracle数据库相较于SQL Server的优势。通过对两者在操作系统支持、架构、版本等方面的比较,作者莫佩宏深入分析了Oracle的开放性策略所带来的...

    Oracle和SQL Server浅析

    Oracle 和 SQL Server 都是广泛使用的数据库管理系统,它们在 SQL 语句的语法上存在一些差异。T-SQL 是 SQL Server 的默认查询语言,而 PL/SQL 是 Oracle 的语言引擎。尽管两者都遵循 ANSI SQL-92 标准,但它们都有...

    浅析Oracle和Microsoft SQL Server事务处理的异同.pdf

    在管理信息系统中,数据库事务处理是核心功能之一,尤其在使用较为广泛的Oracle和Microsoft SQL Server这两种关系型数据库管理系统中。本文旨在分析和比较这两种数据库在事务处理上的异同点。 事务是一系列数据库...

    Delphi SQL数据转换技术浅析 (1).pdf

    "Delphi SQL数据转换技术浅析" 本文探讨了Delphi开发环境中将SQL数据转换到Excel模板的技术...本文对Delphi SQL数据转换技术的浅析,旨在为企业中不同的需求提供实用示例说明,并推动Delphi和SQL Server的技术应用。

    浅析Oracle的数据复制技术在容灾中的应用.pdf

    Golden Gate不仅可以在Oracle数据库间进行复制,还可以与其他数据库系统(如SQL Server、DB2等)进行跨平台数据集成,适合复杂的企业级容灾需求。 **容灾技术比较** 1. **基于存储设备的数据复制**:这种方式透明...

    Oracle_TNS浅析.doc

    ### Oracle TNS浅析 #### 一、Oracle TNS简介 **TNS( Transparent Network Substrate)** 是Oracle Net的一部分,主要用于管理和配置Oracle数据库与客户端之间的连接。它为客户端提供了透明的网络通信机制,使得...

    深入浅析Orcale的nvl函数和SQL Server的isnull函数

    Coalesce函数在SQL Server和Oracle中都有,它接受一个或多个表达式作为参数,并返回第一个非NULL的值。如果所有表达式都为NULL,Coalesce将返回NULL。这个函数可以用来处理多个可能的NULL源,例如`COALESCE(expr1, ...

    oracle TNS 浅析

    2. **sqlnet.ora**:这个文件用于设定和约束TNS连接的相关参数,可以根据需要在服务器和客户端进行配置,以管理和控制连接行为。 3. **tnsnames.ora**:此文件存储客户端到服务器的连接服务信息,包括服务器名、...

    VFP环境下应用SQL实现数据查询浅析.pdf

    它广泛应用于数据库管理系统中,特别是关系型数据库如Microsoft SQL Server、MySQL、Oracle等。 SQL查询功能简述:一条SELECT SQL语句可用于实现数据的查询、筛选、分组、排序等功能,其作用包括但不限于以下几点:...

    浅析动态网站建设之后台数据库的选择.pdf

    目前常见的数据库种类繁多,如Microsoft SQL Server,Microsoft Access,Oracle,MySQL,SyBase,DB2 等。每种产品都有自己特有的功能。在数据库市场上占有一定份额。下面简要介绍几种常用的数据库管理系统。 ...

    VS2010轻松学习C#-从零到深入-天轰穿.NET4趣味编程视频教程_第27讲:ADO.NET实例浅析

    3. **Connection**: 用于建立与数据库的连接,支持多种数据库如SQL Server、Oracle等。每个数据库都有对应的数据库提供程序(如SqlClient for SQL Server)。 4. **Command**: 用于执行数据库命令,如SQL查询、存储...

    数据库审计系统核心指标浅析 .pdf

    它应该支持SQL-92标准,并覆盖ORACLE、SQL SERVER、MYSQL、DB2、Sybase、Informix等主流数据库系统,确保广泛适用性。这样可以确保无论企业使用何种数据库,审计系统都能有效工作。 其次,系统需要有精细灵活的审计...

    浅析数据库(DB)、操作数据存储(ODS)和数据仓库(DW)的区别与联系.docx

    常见的数据库管理系统包括MySQL、Oracle、SQL Server和DB2等。 【数据仓库(DW)】 数据仓库则是专门设计用于分析和决策支持的系统,主要服务于OLAP操作。与数据库不同,数据仓库不追求实时更新,而是关注历史数据...

    浅析B_S系统构架.

    - **硬件配置**:服务器端通常采用高性能的PC、工作站或小型机,并采用大型数据库系统,如Oracle、SQL Server等。客户端需要安装专用的客户端软件。 ##### (二)B/S结构 B/S架构是指浏览器/服务器架构,它是随着...

    浅析分布式管理交通平台的应用特点.pdf

    1. 多源异构的数据接入整合能力:这类平台能够整合来自不同来源的数据,如关系型数据库、互联网公开数据、第三方数据等,并且支持多种数据库系统,如MySQL、Oracle、DB2、SQL Server等。这大大拓展了平台的数据接入...

    浅析MAPGIS平台软件产品技术优势.doc

    它支持多种大型商用数据库,如SQL Server、Oracle等,可以同时存储和管理CAD数据。此外,系统还允许用户实时动态更新数据,多人并发访问,确保数据的安全性和访问权限。 4. **时空数据处理**: MAPGIS的时空数据...

    浅析分布式数据库管理的校园网络设计与实现.pdf

    2. **网络管理中心数据库分析**:数据库是管理中心的核心,选择如SQL Server 2000或Oracle等DBMS来构建,确保数据交换的实时性、安全性和备份。分布式数据库设计应尽量减少网络使用,通过数据复制或分割策略优化信息...

    浅析节能减排信息化能源管理系统的构架.zip

    2. 数据处理与存储层:接收到的数据在这一层进行清洗、整合、存储,通常采用数据库管理系统,如SQL Server或Oracle,确保数据的安全性和可访问性。 3. 数据分析与应用层:这一层利用大数据分析技术,对收集到的能源...

    MySQL数据库技术分享 MySQL查询优化浅析 共32页.pdf

    MySQL查询优化是数据库管理中至关重要的一个环节,其目的是通过找到执行SQL语句的最佳路径,以提高查询效率,减少资源消耗。在这个过程中,查询优化器起着核心作用,它会根据代价模型来评估不同的执行计划,并选择...

Global site tag (gtag.js) - Google Analytics