Oracle和SQLServer的语法区别.doc

Oracle和SQLServer的语法区别.doc

ID:57207595

大小:418.50 KB

页数:59页

时间:2020-08-06

Oracle和SQLServer的语法区别.doc_第1页
Oracle和SQLServer的语法区别.doc_第2页
Oracle和SQLServer的语法区别.doc_第3页
Oracle和SQLServer的语法区别.doc_第4页
Oracle和SQLServer的语法区别.doc_第5页
资源描述:

《Oracle和SQLServer的语法区别.doc》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库

1、Oracle和SQLServer的语法区别SQL语言支持这一部分概述了Transact-SQL和PL/SQL语言语法之间的相同点和不同点,并给出转换策略。要将OracleDML语句和PL/SQL程序迁移到SQLServer时,请按下列步骤执行:1.验证所有SELECT、INSERT、UPDATE和DELETE语句的语法是有效的。进行任何必要的修改。2.把所有外部联接改为SQL-92标准外部联接语法。3.用相应SQLServer函数替代Oracle函数。4.检查所有的比较运算符。5.用“+”字符串串联运

2、算符代替“

3、

4、”字符串串联运算符。6.用Transact-SQL程序代替PL/SQL程序。7.把所有PL/SQL游标改为非游标SELECT语句或Transact-SQL游标。8.用Transact-SQL过程代替PL/SQL过程、函数和包。9.把PL/SQL触发器转换为Transact-SQL触发器。10.使用SETSHOWPLAN语句,优化查询性能。SELECT语句Oracle和MicrosoftSQLServer使用的SELECT语句语法类似。OracleMicrosoftSQLServerSEL

5、ECT[/*+optimizer_hints*/][ALL

6、DISTINCT]select_list[FROM{table_name

7、view_name

8、select_statement}][WHEREclause][GROUPBYgroup_by_expression][HAVINGsearch_condition][STARTWITHUCONNECTBY][{UNION

9、UNIONALL

10、INTERSECT

11、MINUS}SELECTU][ORDERBYclause][FORUPDATE]SELEC

12、Tselect_list[INTOnew_table_]FROMtable_source[WHEREsearch_condition][GROUPBY[ALL]group_by_expression[,Un][WITH{CUBE

13、ROLLUP}][HAVINGsearch_condition][ORDERBYorder_expression[ASC

14、DESC]]Inaddition:UNIONOperatorCOMPUTEClauseFORBROWSEClauseOPTIONClauseSQLServ

15、er不支持Oracle特定的基于开销的优化程序提示,它必须被删除。建议使用的技术是,使用SQLServer基于开销的优化程序。有关详细信息,请参见本章后面的“SQL语句优化”。SQLServer不支持Oracle的STARTWITHUCONNECTBY子句。在SQLServer中,可以创建完成相同任务的存储过程替代它。SQLServer不支持Oracle的INTERSECT和MINUS集合运算符。可使用SQLServerEXISTS和NOTEXISTS子句,实现相同的结果。在下面示例中,使用INTER

16、SECT运算符,用于查找学生登记的所有课程的代码和名称。注意,EXISTS运算符是如何代替INTERSECT运算符的。返回的数据是相同的。OracleMicrosoftSQLServerSELECTCCODE,CNAMEFROMDEPT_ADMIN.CLASSINTERSECTSELECTC.CCODE,C.CNAMEFROMSTUDENT_ADMIN.GRADEG,DEPT_ADMIN.CLASSCWHEREC.CCODE=G.CCODESELECTCCODE,CNAMEFROMDEPT_ADMIN

17、.CLASSCWHEREEXISTS(SELECT'X'FROMSTUDENT_ADMIN.GRADEGWHEREC.CCODE=G.CCODE)在此例中,使用MINUS运算符,查找那些没有任何学生登记的课程。OracleMicrosoftSQLServerSELECTCCODE,CNAMEFROMDEPT_ADMIN.CLASSMINUSSELECTC.CCODE,C.CNAMEFROMSTUDENT_ADMIN.GRADEG,DEPT_ADMIN.CLASSCWHEREC.CCODE=G.CCOD

18、ESELECTCCODE,CNAMEFROMDEPT_ADMIN.CLASSCWHERENOTEXISTS(SELECT'X'FROMSTUDENT_ADMIN.GRADEGWHEREC.CCODE=G.CCODE)INSERT语句Oracle和MicrosoftSQLServer使用的INSERT语句语法类似。OracleMicrosoftSQLServerINSERTINTO{table_name

19、view_name

20、select_statement

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。