Oracle存储过程大冒险-2存储过程经常使用语法

存储过程和函数能够放在同一个包下方便管理,如同java的package,了解了存储过程后就知道前辈是多么爽了,全都在sql里,不用像咱们sql查出来还要用转成java对象进行逻辑处理。。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循环,游标也能够设置传入参数

一、建立游标:cursor 游标名 is 结果集
二、打开游标 open 游标名
三、loop循环游标取数据 fetch 游标名 into 变量(通常 begin for 游标变量 in 游标 loop,用单个游标.属性来取数据 end loop end)
四、关闭游标 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. 正则表达式的用法
相关文章
相关标签/搜索