转至繁体中文版     | 网站首页 | 图文教程 | 资源下载 | 站长博客 | 图片素材 | 武汉seo | 武汉网站优化 | 
最新公告:     敏韬网|教学资源学习资料永久免费分享站!  [mintao  2008年9月2日]        
您现在的位置: 学习笔记 >> 图文教程 >> 数据库 >> ORACLE >> 正文
把Oracle数据库移植到Microsoft SQL Server 7.0         ★★★★

把Oracle数据库移植到Microsoft SQL Server 7.0

作者:闵涛 文章来源:闵涛的学习笔记 点击数:13398 更新时间:2009/4/22 22:06:51
>5 105 Italian dd-mm-yy 6 106 - dd mon yy 7 107 - mon dd, yy 8 108 - hh:mm:ss - 9 or 109 (*) Default milliseconds mon dd yyyy hh:mi:ss:mmm (AM or PM) 10 110 USA mm-dd-yy 11 111 Japan yy/mm/dd 12 112 ISO yymmdd - 13 or 113 (*) Europe default dd mon yyyy hh:mm:ss:mmm(24h) 14 114 - hh:mi:ss:mmm(24h)

 

用户定义函数

Oracle PL/SQL函数可以在Oracle SQL语句中使用。在Microsoft SQL Server中一般可以通过其它方式来实现同样的功能。

在SQL Server中可以用表中给出的查询来代替。

Oracle Microsoft SQL Server SELECT SSN, FNAME, LNAME, )    TUITION_PAID,
   TUITION_PAID/
GET_SUM_
   MAJOR(MAJOR)
   AS PERCENT_MAJOR
FROM STUDENT_ADMIN.STUDENT
SELECT SSN, FNAME, LNAME, TUITION_PAID, TUITION_PAID/SUM_MAJOR AS PERCENT_MAJOR
FROM STUDENT_ADMIN.STUDENT,
  (SELECT MAJOR,      SUM(TUITION_PAID)
SUM_MAJOR
  FROM STUDENT_ADMIN.STUDENT
  GROUP BY MAJOR) SUM_STUDENT
WHERE STUDENT.MAJOR =      SUM_STUDENT.MAJOR
CREATE OR REPLACE FUNCTION GET_SUM_MAJOR
(INMAJOR VARCHAR2) RETURN NUMBER
AS SUM_PAID NUMBER;
BEGIN
SELECT SUM(TUITION_PAID) INTO    SUM_PAID
FROM STUDENT_ADMIN.STUDENT
WHERE MAJOR = INMAJOR;
RETURN(SUM_PAID);
END GET_SUM_MAJOR;
No CREATE FUNCTION syntax is required; use CREATE PROCEDURE syntax.

 

比较操作符

Oracle和Microsoft SQL Server的比较操作符几乎是一样的。

算符 Oracle Microsoft SQL Server 等于 (=) (=) 大于 (>) (>) 小于 (<) (<) 大于或等于 (>=) (>=) 小于或等于 (<=) (<=) 不等于 (!=, <>, ^=) (!=, <>, ^=) 不大于,不小于 N/A !> , !< 在集合中任意成员中 IN IN 不在集合中的任何成员中 NOT IN NOT IN 集合中的任意值 ANY, SOME ANY, SOME 提交集合中的所有值 != ALL, <> ALL, < ALL,
> ALL, <= ALL, >= ALL, != SOME, <> SOME,
< SOME, > SOME,
<= SOME, >= SOME
!= ALL, <> ALL, < ALL,
> ALL, <= ALL, >= ALL, != SOME, <> SOME,
< SOME, > SOME,
<= SOME, >= SOME
像模式(Like pattern) LIKE LIKE 不像模式(Not like pattern) NOT LIKE NOT LIKE X和y之间的值 BETWEEN x AND y BETWEEN x AND y 不在x和y之间的值 NOT BETWEEN NOT BETWEEN 值存在 EXISTS EXISTS 值不存在 NOT EXISTS NOT EXISTS 值{为|不为}空 IS NULL, IS NOT NULL Same. Also = NULL,
!= NULL for backward compatibility (not recommended).

 

模式匹配

SQL Server的LIKE关键字提供了有用的通配符搜索功能,这个功能在Oracle中不支持。除了所有的RDBMS都支持的(%)和(_)通配符以外,SQL Server还支持([ ])和([^])通配符。

([ ])字符用来查询在一个范围内的所有单个字符。例如,如果你需要查询包含一个从a到f的字符的数据,你可以这样写:“LIKE ''''[a-f]''''”或者“LIKE ''''[abcdef]''''”。这些附加的通配符的有效性在下表中给出。

Oracle Microsoft SQL  SELECT * FROM STUDENT_ADMIN.STUDENT
WHERE LNAME LIKE
''''A%''''
OR LNAME LIKE ''''B%''''
OR LNAME LIKE ''''C%''''
SELECT * FROM STUDENT_ADMIN.STUDENT
WHERE LNAME LIKE ''''[ABC]%''''

 

[^]通配符用来标记那些不在特定范围内的字符。例如,如果除了a到f以外的所有字符都是可以接受的,你可以这样书写:LIKE ''''[^a - f]''''或者LIKE ''''[^abcdef]''''。

欲了解关于LIKE关键字的详细信息,请参阅SQL Server联机手册。

 

在比较中使用NULL

尽管Microsoft SQL Server传统上支持SQL-92标准的和一些非标准的NULL行为,但是它还是支持Oracle中的NULL的用法。

为了支持分布式查询,SET ANSI_NULLS必须设定为ON。

在进行连接的时候,SQL Server的SQL Server ODBC驱动程序和OLE DB提供者自动把SET ANSI_NULLS设定为ON。这个设置可以在ODBC数据源、ODBC连接属性、或者是在连接到SQL Server之前在应用程序中设置的OLE DB连接属性中进行配置。在从DB-Library应用程序中连接时,SET ANSI_NULLS缺省为OFF。

当SET ANSI_DEFAULTS为ON时,SET ANSI_NULLS被允许。

欲了解关于NULL用法的详细信息,请参阅SQL Server联机手册。

 

字串连接

Oracle使用两个管道符号(||)来作为字串连接操作符,SQL Server则使用加号(+)。这个差别要求你在应用程序中做小小的修改。

Oracle Microsoft SQL  SELECT FNAME||'''' ''''||LNAME AS NAME
FROM STUDENT_ADMIN.STUDENT
SELECT FNAME +'''' ''''+ LNAME AS    NAME
FROM STUDENT_ADMIN.STUDENT

 

流控制(Control-of-Flow)语言

流控制语言控制SQL语句执行流,语句块以及存储过程。PL/SQL和Transact-SQL提供了多数相同的结构,但是还是有一些语法差别。

 

关键字

这是两个RDBMS支持的关键字。

语句 Oracle PL/SQL Microsoft SQL Server
Transact-SQL
声明变量 DECLARE DECLARE 语句块 BEGIN...END; BEGIN...END 条件处理 IF…THEN,
ELSIF…THEN,
ELSE
ENDIF;
IF…[BEGIN…END]
ELSE <condition>
[BEGIN…END]
ELSE IF <condition>
CASE expression
无条件结束 RETURN RETURN 无条件结束当前程序块后面的语句 EXIT BREAK 重新开始一个WHILE循环 N/A CONTINUE 等待指定间隔

 << 上一页  [11] [12] [13] [14] [15] [16] [17]  下一页


[Access]sql随机抽取记录  [Access]ASP&SQL让select查询结果随机排序的实现方法
[聊天工具]企业邮件系统的利器----FoxMail Server  [系统软件]OPEN SERVER 5.0.5安装EXP300阵列柜
[系统软件]SQL语句性能优化--LECCO SQL Expert  [系统软件]关于Windows2000Server的灾难恢复
[常用软件][网络]下载服务革命性风暴Poco Server评测  [C语言系列]动态创建SQL Server数据库、表、存储过程等架构信…
[C语言系列]SQL Server到DB2连接服务器的实现  [C语言系列]SQL Server到SYBASE连接服务器的实现
教程录入:mintao    责任编辑:mintao 
  • 上一篇教程:

  • 下一篇教程:
  • 【字体: 】【发表评论】【加入收藏】【告诉好友】【打印此文】【关闭窗口
      注:本站部分文章源于互联网,版权归原作者所有!如有侵权,请原作者与本站联系,本站将立即删除! 本站文章除特别注明外均可转载,但需注明出处! [MinTao学以致用网]
      网友评论:(只显示最新10条。评论内容只代表网友观点,与本站立场无关!)

    同类栏目
    · Sql Server  · MySql
    · Access  · ORACLE
    · SyBase  · 其他
    更多内容
    热门推荐 更多内容
  • 没有教程
  • 赞助链接
    更多内容
    闵涛博文 更多关于武汉SEO的内容
    500 - 内部服务器错误。

    500 - 内部服务器错误。

    您查找的资源存在问题,因而无法显示。

    | 设为首页 |加入收藏 | 联系站长 | 友情链接 | 版权申明 | 广告服务
    MinTao学以致用网

    Copyright @ 2007-2012 敏韬网(敏而好学,文韬武略--MinTao.Net)(学习笔记) Inc All Rights Reserved.
    闵涛 投放广告、内容合作请Q我! E_mail:admin@mintao.net(欢迎提供学习资源)

    站长:MinTao ICP备案号:鄂ICP备11006601号-18

    闵涛站盟:医药大全-武穴网A打造BCD……
    咸宁网络警察报警平台