sql server vs oracle 存储过程语法转换12
15页1、一、SQL Server vs Oracle简单语法比较此为本人将ORACLE 函数和存储过程转换为SQL SERVER遇到的一些语法问题的经验总结,肯定不能包括所有的语法不同点。注: 简单的语法异同1、SQL SERVER变量 必须以开头。2、SQL SERVER语句后不需要写分号结束符。3、oracle变量类型number 可以修改为sql server的decimal4、oracle变量类型varchar2 可以修改为sql server的varchar5、SQL SERVER定义变量 及传递参数,最好加上参数大小数值,例如:varchar(50)5、SQL SERVER 不能用ROWID, ROWNUM (但可以用TOP代替)6、oracle里的nvl函数,在SQL SERVER里使用ISNULL函数取代7、SQL SERVER自定义函数不允许修改全局表数据(只允许修改自定义函数范围内表数据), 所以发生表修改的 最好用存储过程实现而非函数。1create函数或存储过程异同点Oracle 创建函数或存储过程 一般是 create or replace SQL SERVER 则是
2、在创建之前加一条语句,先判断是否已经存在,如果存在删除已有的函数或存储过程。函数语句if exists (select * from dbo.sysobjects where id = object_id(Ndbo.函数名) and xtype in (NFN, NIF, NTF)drop function dbo.函数名GO存储过程if exists (select * from dbo.sysobjects where id = object_id(Ndbo.存储过程名) and OBJECTPROPERTY(id, NIsProcedure) = 1)drop procedure dbo.存储过程名GO2 结构异同点ORACLECreate 部分IS 定义部分BEGIN END; 实现部分SQL SERVERCreate 部分AS 定义和实现部分 (AS 下面的代码一般用BEGIN END 包含)3 调用参数ORACLE输入参数 参数名In 参数类型ORACLE输出参数 参数名Out参数类型SQL SERVER输入参数 参数名参数类型 IN(IN可以不写,系统默认)SQL SER
3、VER输出参数 参数名 参数类型 OUTPUT4变量命名及赋值ORACLE1、变量名 随便取2、定义格式为变量名 变量类型;3、给变量赋值为 变量名 := 值;SQL SERVER1、变量名前面一般加2、定义格式为 declare 变量名 变量类型3、SET变量名 =变量类型5 IF语句ORACLEIF THEN .ELSE .END IF;SQL SERVERIF .BEGIN ENDELSEBEGINEND或者IF . BEGIN ENDELSEBEGIN END6 case语句ORACLEIF THEN .ELSE .END IF;SQL SERVERIF . BEGIN ENDELSEBEGIN END或者IF . BEGIN ENDELSEBEGIN END7游标的定义及使用 及循环操作ORACLE定义游标CURSOR CurA IS SELECT a FROM tab where ;SQL SERVER定义游标DECLARE CurA CURSOR LOCALFORSELECT a FROM tab where ;ORACLE使用游标Open CurA; - 打开游标Fet
4、ch CurA Into ISUserUnitPri;IF CurA%NOTFOUND THEN - 注:如果为CurA%FOUND,看下面相同位置注释ISUserUnitPri := 1;END IF;Close CurA; - 关闭游标SQL SERVER使用游标Open CurA - 打开游标Fetch next from CurA Into ISUserUnitPriIF fetch_status 0 BEGIN - 注: 则fetch_status = 0 SET ISUserUnitPri = 1 - 没有选到记录 给默认值1ENDClose CurA - 关闭游标DEALLOCATECurA - 释放占用资源ORACLE循环操作游标 (超级简洁)FOR ISUserUnitPri IN CurALOOP- 做操作END LOOP;注:想循环中间退出循环,用EXITSQL SERVER循环操作游标Open CurA - 打开游标Fetch next from CurA Into ISUserUnitPriWhile (fetch_status = 0 ) BEGIN. -
《sql server vs oracle 存储过程语法转换12》由会员小**分享,可在线阅读,更多相关《sql server vs oracle 存储过程语法转换12》请在金锄头文库上搜索。
2020年高考真题——理科综合(全国卷Ⅲ)+Word版含答案
2021年绝味鸭脖策划书
2021年熟食店创业方案
2021年熟食店开店策划
2021年卤菜店创业计划书
2021年周黑鸭网络营销策划方案
东大21年1月考试《现代设计方法》考核作业
谈我国行政管理效率的现状及其改观对策(论文)
单证员考试-备考辅导-复习资料:无贸易背景信用证案分析.docx
土木工程毕业生答辩自述.docx
建筑学毕业后工作状态真实写照.doc
C#代码规范(湖南大学).doc
xx区食药监局2019年工作总结及2020年工作计划
2019年中医院药物维持治疗门诊工人先锋号先进事迹
2019年度xx乡镇林长制工作总结
2019年性艾科工作计划书
2019年人才服务局全国扶贫日活动开展情况总结
关于组工信息选题的几点思考
摘了穷帽子 有了新模样
2019年某集团公司基层党支部书记培训班心得体会
2024-03-13 36页
2024-03-13 12页
2024-03-13 15页
2024-03-13 35页
2024-03-04 55页
2024-03-04 57页
2024-03-04 137页
2024-03-04 65页
2024-02-23 12页
2024-02-23 3页