博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Oracle存储过程大冒险-2存储过程常用语法
阅读量:5912 次
发布时间:2019-06-19

本文共 1432 字,大约阅读时间需要 4 分钟。

hot3.png

存储过程和函数可以放在同一个包下方便管理,如同java的package,了解了存储过程后就知道前辈是多么爽了,全都在sql里,不用像我们sql查出来还要用转成java对象进行逻辑处理。。

常用语法

  1. 存储过程创建CREATE OR REPLACE PROCEDURE 存储过程名(参数1 IN,参数2 OUT) is begin xxx end
  2. 存储过程有三种参数类型IN OUT INOUT,对应传入、传出、传入传出值。设置参数若没写具体类型则默认为IN类型
  3. 异常信息处理:raise 后跟异常 表示抛出 的异常,或者在异常内用 others then
  4. 游标cursor是最为关键的知识点,就是查询出来的结果集循环做操作,要了解它的多种定义与使用open、for循环,游标也可以设置传入参数

1、创建游标:cursor 游标名 is 结果集

2、打开游标 open 游标名
3、loop循环游标取数据 fetch 游标名 into 变量(一般 begin for 游标变量 in 游标 loop,用单个游标.属性来取数据 end loop end)
4、关闭游标 close 游标名

  1. %FOUND用法,可以和游标联合使用:游标变量%FOUND,若有数据则是true,同理也有%NOTFOUND
  2. for xx in(select * from table ) begin 一顿操作 end 也可以达到和游标相同效果
  3. 分析函数keep()的用法,取同一个分组下以某个字段排序后,对指定字段取最小或最大的那个值。一般用 聚合函数| max(column1) keep (dense_rank first或last order by column2) over (partion by column3),表示按照column2排序后的首个或最后数据再取聚合函数(column1)
  4. row_number()over() (partition by xx order by xx) num 分组再排序,以及和自带的rownum的区别:rownum 是结果集出来后排序的必须从1开始。
  5. goto 一个<标签>,能跳出循环,相当于 java里的break,不过要现在外层设置标签例如**<outter>**则可直接跳转出来
  6. 对于数据的操作:MOD ()求余数,round四舍五入,ceil向上取整,floor向下取整,trunc截取整数部分,abs绝对值
  7. order by 和 decode()连用,可以将不好排序的字段设置为数字进行排序,例如order by decode(字段A,'b',1,'c',2,3),字段A如果是b就是1,c就是2.否则是3这样就相当于字段A就是1,2,3这种顺序关系。
  8. if a= elseif a= end if判断条件语句
  9. := 赋值。 如 a:=3
  10. aa.bb%type 数据类型为aa表的bb字段的数据类型,这坨代码是定义变量时放变量后的
  11. reverse的用法,1..0 reverse 从1到0反向循环
  12. sign(表达式)函数,若表达式小于0返回-1,等于0返回0,大于0返回1
  13. decode用法,decode(a,'a',1,'b',2,3)。若a等于a则返回1,等于b则返回2 否则返回3。
  14. 外、左、右连接 用+的写法
  15. 正则表达式的用法

转载于:https://my.oschina.net/xlpapapa/blog/3030465

你可能感兴趣的文章
使用Configuration Manager部署及管理软件更新(1)
查看>>
java中的初始化块
查看>>
Windows脚本初探之VBScrip流程控制For...Next
查看>>
CUDA学习(十七)
查看>>
createrepo -g /enp/comps.xml .
查看>>
基于物理的渲染—迪士尼的渲染模型
查看>>
AOP之PostSharp6-EventInterceptionAspect(事件异步调用)
查看>>
修正一款php webshell
查看>>
ubuntu 常用命令锦集
查看>>
how to install keepassx on RHEL
查看>>
AIX5.3安装ssh 笔记
查看>>
活动目录漫游用户配置解决方案
查看>>
Android笔记:测量控件宽高和动态设置控件宽高
查看>>
windows2000修复过程
查看>>
Django补充及初识Ajax
查看>>
OpenStack —— 网络进阶Linux Bridge(七)
查看>>
【开发参考】Silverlight 4控件对应装配文件表
查看>>
git对象类型及存储结构讲解
查看>>
跟大家分享几个MySQL数据库备份的小窍门
查看>>
IP地址与网络上的其他系统有冲突
查看>>