- 1、本文档共6页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
Oracle与SQLServer的SQL语法差异总结
Oracle与SQL Server应用差异对比分析项目Oracle 10gSQLServer 2008备注存储过程格式CREATE OR REPLACE PROCEDURE 存储过程名(参数列表) ISBegin ---存储过程内容End 存储过程名;CREATE PROCEDURE 存储过程名 (参数列表) AS --存储过程内容存储过程参数指定参数类型,但不指定长度在参数及类型间要加入出标识(IN、OUT)Eg:task_remark IN VARCHAR2prm_codeOUT NUMBER指定参数类型,并要指定长度对于出参需要在类型后面加OUTPUT(或OUT)Eg:@task_remark VARCHAR(10)@prm_code int output使用存储过程直接使用存储过程名参数在存储过程后面的括号包内列出Eg: p_wfm_getcolumns(v_tablename,v_tablecolumn);调用存储过程名前面需要加 exec关键字参数在存储过程后面逐个列出出参后面要加关键字output或outEg:EXEC P_WFM_GETCOLUMNS @tablename,@tablecolumn OUTPUT自定义函数格式CREATE OR REPLACE FUNCTION 函数名 (参数列表) RETURN 返回值类型 ISBEGINEND;CREATE FUNCTION 函数名 (参数列表) RETURNs 返回值类型 AS--函数内容自定义函数内容指定参数类型,但不指定长度在参数及类型间要加入出标识(IN、OUT)Eg:task_remark IN VARCHAR2prm_codeOUT NUMBER支持对数据增、删、改操作支持动态SQL语句指定参数类型,并要指定长度不支持出参Eg:@task_remark VARCHAR(10)不支持对数据增、删、改操作不支持动态SQL语句使用自定义函数直接使用函数名Eg:V_result :=f_wfm_isandbegin(flow_id, step_id)在函数名前面加上dbo.Eg:Set @result=dbo.f_wfm_isandbegin(@flow_id, @step_id)游标游标声明 DECLARE cursor 游标名 is select语句使用游标过程 打开(open)-提取(fetch)-关闭(close)支持快捷使用游标,直接使用for循环,数据库会自动打开、提取及关闭游标游标声明DECLARE游标名cursor for select语句使用游标过程 打开(open)-提取(fetch)-关闭(close)-销毁(变量变量前不可加@符号存储过程中变量声明不需要declare Eg:Code varchar2(5);变量类型可按表中字段类型动态定义Eg:V_id sysc01.id%type;变量前需要加@符号变量声明需要使用Declare关键字Eg:DECLARE @code varchar(5);不支持按表字段类型动态定义 赋值变量直接赋值,变量 := 表达式;Eg: v_result := ‘abcd’;通过SQL语句Select 表达式 into 变量 from 表Eg:Select code,name into v_code,v_name from sysc01 Where id = 1000变量直接赋值,Set 变量=表达式;Eg: Set @result = ‘abcd’通过SQL语句赋值 Select 变量=表达式 from 表Eg:Select @code=code,@name=name from sysc01 where id = 1000语句结束符SQL语句使用分号 ; 作为语句的结束SQL语句不需要加分号;作为结束符(加也可)大小写Oracle对字符区分大小写默认对字符不区分大小写,也可修改数据库配置支持区分大小写序列有序列sequence对象,无自动增长列无序列对象,表中有自动增长列Select 语法结果集可做为表使用,使用时可不加别名Eg:Select * from (select * from tab1)虚表 dual的使用,对于select计算某些与实体表无关的表达式时,要使用虚表dualEg: Select round(1/3,2) from dual ;结果集可做为表使用,使用时必须加别名Eg:Select * from (select * from tab1) a对于Select计算某些与实体表无关的表达式时,可使用不带from的select语句Eg:Select round(1/3,2) ; Update语法不可关联表更新Eg: For cur in (select a.id,b.value
文档评论(0)