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的优势。通过对两者在操作系统支持、架构、版本等方面的比较,作者莫佩宏深入分析了Oracle的开放性策略所带来的...
Oracle 和 SQL Server 都是广泛使用的数据库管理系统,它们在 SQL 语句的语法上存在一些差异。T-SQL 是 SQL Server 的默认查询语言,而 PL/SQL 是 Oracle 的语言引擎。尽管两者都遵循 ANSI SQL-92 标准,但它们都有...
在管理信息系统中,数据库事务处理是核心功能之一,尤其在使用较为广泛的Oracle和Microsoft SQL Server这两种关系型数据库管理系统中。本文旨在分析和比较这两种数据库在事务处理上的异同点。 事务是一系列数据库...
"Delphi SQL数据转换技术浅析" 本文探讨了Delphi开发环境中将SQL数据转换到Excel模板的技术...本文对Delphi SQL数据转换技术的浅析,旨在为企业中不同的需求提供实用示例说明,并推动Delphi和SQL Server的技术应用。
Golden Gate不仅可以在Oracle数据库间进行复制,还可以与其他数据库系统(如SQL Server、DB2等)进行跨平台数据集成,适合复杂的企业级容灾需求。 **容灾技术比较** 1. **基于存储设备的数据复制**:这种方式透明...
### Oracle TNS浅析 #### 一、Oracle TNS简介 **TNS( Transparent Network Substrate)** 是Oracle Net的一部分,主要用于管理和配置Oracle数据库与客户端之间的连接。它为客户端提供了透明的网络通信机制,使得...
Coalesce函数在SQL Server和Oracle中都有,它接受一个或多个表达式作为参数,并返回第一个非NULL的值。如果所有表达式都为NULL,Coalesce将返回NULL。这个函数可以用来处理多个可能的NULL源,例如`COALESCE(expr1, ...
2. **sqlnet.ora**:这个文件用于设定和约束TNS连接的相关参数,可以根据需要在服务器和客户端进行配置,以管理和控制连接行为。 3. **tnsnames.ora**:此文件存储客户端到服务器的连接服务信息,包括服务器名、...
它广泛应用于数据库管理系统中,特别是关系型数据库如Microsoft SQL Server、MySQL、Oracle等。 SQL查询功能简述:一条SELECT SQL语句可用于实现数据的查询、筛选、分组、排序等功能,其作用包括但不限于以下几点:...
目前常见的数据库种类繁多,如Microsoft SQL Server,Microsoft Access,Oracle,MySQL,SyBase,DB2 等。每种产品都有自己特有的功能。在数据库市场上占有一定份额。下面简要介绍几种常用的数据库管理系统。 ...
3. **Connection**: 用于建立与数据库的连接,支持多种数据库如SQL Server、Oracle等。每个数据库都有对应的数据库提供程序(如SqlClient for SQL Server)。 4. **Command**: 用于执行数据库命令,如SQL查询、存储...
它应该支持SQL-92标准,并覆盖ORACLE、SQL SERVER、MYSQL、DB2、Sybase、Informix等主流数据库系统,确保广泛适用性。这样可以确保无论企业使用何种数据库,审计系统都能有效工作。 其次,系统需要有精细灵活的审计...
常见的数据库管理系统包括MySQL、Oracle、SQL Server和DB2等。 【数据仓库(DW)】 数据仓库则是专门设计用于分析和决策支持的系统,主要服务于OLAP操作。与数据库不同,数据仓库不追求实时更新,而是关注历史数据...
- **硬件配置**:服务器端通常采用高性能的PC、工作站或小型机,并采用大型数据库系统,如Oracle、SQL Server等。客户端需要安装专用的客户端软件。 ##### (二)B/S结构 B/S架构是指浏览器/服务器架构,它是随着...
1. 多源异构的数据接入整合能力:这类平台能够整合来自不同来源的数据,如关系型数据库、互联网公开数据、第三方数据等,并且支持多种数据库系统,如MySQL、Oracle、DB2、SQL Server等。这大大拓展了平台的数据接入...
它支持多种大型商用数据库,如SQL Server、Oracle等,可以同时存储和管理CAD数据。此外,系统还允许用户实时动态更新数据,多人并发访问,确保数据的安全性和访问权限。 4. **时空数据处理**: MAPGIS的时空数据...
2. **网络管理中心数据库分析**:数据库是管理中心的核心,选择如SQL Server 2000或Oracle等DBMS来构建,确保数据交换的实时性、安全性和备份。分布式数据库设计应尽量减少网络使用,通过数据复制或分割策略优化信息...
2. 数据处理与存储层:接收到的数据在这一层进行清洗、整合、存储,通常采用数据库管理系统,如SQL Server或Oracle,确保数据的安全性和可访问性。 3. 数据分析与应用层:这一层利用大数据分析技术,对收集到的能源...
MySQL查询优化是数据库管理中至关重要的一个环节,其目的是通过找到执行SQL语句的最佳路径,以提高查询效率,减少资源消耗。在这个过程中,查询优化器起着核心作用,它会根据代价模型来评估不同的执行计划,并选择...