本系列链接导航:

[独孤九剑]Oracle知识点梳理(一)表空间、用户

[独孤九剑]Oracle知识点梳理(二)数据库的连接

[独孤九剑]Oracle知识点梳理(三)导入、导出

[独孤九剑]Oracle知识点梳理(四)SQL语句之DML和DDL

[独孤九剑]Oracle知识点梳理(五)数据库常用对象之Table、View

[独孤九剑]Oracle知识点梳理(六)数据库常用对象之Procedure、function、Sequence

[独孤九剑]Oracle知识点梳理(七)数据库常用对象之Cursor

[独孤九剑]Oracle知识点梳理(八)常见Exception

[独孤九剑]Oracle知识点梳理(九)数据库常用对象之package

[独孤九剑]Oracle知识点梳理(十)%type与%rowtype及常用函数

5.3、procedure的操作

5.3.1、创建存储过程

 create or replace procedure proc_GetPerson(argName in varchar2,argMsg out varchar2,argTable out pkg.RefCur)
                                  --参数,不需要定义长度
as
  vName varchar2(64);-- 定义变量,要设置长度
begin
  vName:=argName; --赋值,每条语句要以分号结束
  open pke.RefCur is select * from person where name like vName||'%';--将查询结果记录到返回游标中
  --当然,还可以进行其他复杂的判断,转换等操作
  argMsg:='正常';
  commit;   Exception
    when others then argMsg='异常';
      rollback; --如果之前执行的是事务性的语句,有必要保证数据安全
end proc_GetPerson;

5.3.2、删除存储过程

drop procedure pro_GetPerson;

5.4、function的操作

5.4.1、创建函数

  • 带in参数
 create or replace function fun_GetPersonName(argName in varchar2,argGender in varchar2) return varchar2
as
  Result varchar2(64); --定义变量
begin
  select name into Result from person where name =argName and gender=argGender and rownum=1;
  return Result;--返回值
end fun_GetPersonName;
  • 带out参数
 create or replace function fun_GetPersonName(argName in varchar2,argGender out varchar2) return varchar2
as
  Result varchar2(64); --定义变量
begin
  select name,gender into Result,argGender from person where name =argName and rownum=1;
  return Result;--返回值
end fun_GetPersonName;

5.4.2、删除函数

drop function fun_GetPersonName;

5.5、sequence的操作

  在Oracle中sequence就是序号,每次取的时候它会自动增加;sequence与表没有关系。
  首先要有CREATE SEQUENCE或者CREATE ANY SEQUENCE权限。

5.5.1、创建序列

 create sequence seqPersonID
  increment by 1 --每次加1
  start with 1 --序列从1开始计数
  nomaxvalue --不设置最大值
  nocycle --一致累加,不循环
  cache 10; 设置缓存cache个序列,如果系统down掉了,或者其他情况会导致序列不连续,
  --nocache; --不是最缓存

5.5.2、得到Sequence的值

  currVal:返回sequence的当前值
  nextVal:返回sequence下一个值

 select seqPersonID.CurrVal from dual; --得到序列的当前值,必须在调用过NextVal之后才能使用,否则报错
select seqPersonID.NextVal from dual; --得到序列的下一个值,如果是第一次使用,则返回创建时设置的初始值

  在Sql语句中可以使用sequence的地方:

  1. 不包含子查询、snapshot、VIEW的 SELECT 语句
  2. INSERT语句的子查询中
  3. INSERT语句的values中
  4. UPDATE 的 SET中

  如在插入语句中

insert into person(id,name)values(seqPersonID.Nextval,'sequence 插入测试');

5.5.3、修改序列

  可以修改出start之外的所有sequence参数,如果想修改start的值,必须先drop 再重新创建

alter sequence seqPersonID maxValue 99999999;

5.5.4、删除序列

drop sequence seqPersonID;

[独孤九剑]Oracle知识点梳理(六)数据库常用对象之Procedure、function、Sequence的更多相关文章

  1. [独孤九剑]Oracle知识点梳理(九)数据库常用对象之package

    本系列链接导航: [独孤九剑]Oracle知识点梳理(一)表空间.用户 [独孤九剑]Oracle知识点梳理(二)数据库的连接 [独孤九剑]Oracle知识点梳理(三)导入.导出 [独孤九剑]Oracl ...

  2. [独孤九剑]Oracle知识点梳理(七)数据库常用对象之Cursor

    本系列链接导航: [独孤九剑]Oracle知识点梳理(一)表空间.用户 [独孤九剑]Oracle知识点梳理(二)数据库的连接 [独孤九剑]Oracle知识点梳理(三)导入.导出 [独孤九剑]Oracl ...

  3. [独孤九剑]Oracle知识点梳理(五)数据库常用对象之Table、View

    本系列链接导航: [独孤九剑]Oracle知识点梳理(一)表空间.用户 [独孤九剑]Oracle知识点梳理(二)数据库的连接 [独孤九剑]Oracle知识点梳理(三)导入.导出 [独孤九剑]Oracl ...

  4. [独孤九剑]Oracle知识点梳理(十)%type与%rowtype及常用函数

    本系列链接导航: [独孤九剑]Oracle知识点梳理(一)表空间.用户 [独孤九剑]Oracle知识点梳理(二)数据库的连接 [独孤九剑]Oracle知识点梳理(三)导入.导出 [独孤九剑]Oracl ...

  5. [独孤九剑]Oracle知识点梳理(二)数据库的连接

    本系列链接导航: [独孤九剑]Oracle知识点梳理(一)表空间.用户 [独孤九剑]Oracle知识点梳理(二)数据库的连接 [独孤九剑]Oracle知识点梳理(三)导入.导出 [独孤九剑]Oracl ...

  6. [独孤九剑]Oracle知识点梳理(八)常见Exception

    本系列链接导航: [独孤九剑]Oracle知识点梳理(一)表空间.用户 [独孤九剑]Oracle知识点梳理(二)数据库的连接 [独孤九剑]Oracle知识点梳理(三)导入.导出 [独孤九剑]Oracl ...

  7. [独孤九剑]Oracle知识点梳理(四)SQL语句之DML和DDL

    本系列链接导航: [独孤九剑]Oracle知识点梳理(一)表空间.用户 [独孤九剑]Oracle知识点梳理(二)数据库的连接 [独孤九剑]Oracle知识点梳理(三)导入.导出 [独孤九剑]Oracl ...

  8. [独孤九剑]Oracle知识点梳理(三)导入、导出

    本系列链接导航: [独孤九剑]Oracle知识点梳理(一)表空间.用户 [独孤九剑]Oracle知识点梳理(二)数据库的连接 [独孤九剑]Oracle知识点梳理(三)导入.导出 [独孤九剑]Oracl ...

  9. [独孤九剑]Oracle知识点梳理(一)表空间、用户

    本系列链接导航: [独孤九剑]Oracle知识点梳理(一)表空间.用户 [独孤九剑]Oracle知识点梳理(二)数据库的连接 [独孤九剑]Oracle知识点梳理(三)导入.导出 [独孤九剑]Oracl ...

随机推荐

  1. 17南宁区域赛 J - Rearrangement 【规律】

    题目链接 https://nanti.jisuanke.com/t/19976 题意 给出 一个n 然后 给出 2*n 个数 可以重新排列成两行 然后 相邻的两个数 加起来 不能被三整除 可以上下相邻 ...

  2. css系列(5)css的运用(一)

        从本节开始介绍css配合html可以达到的一些效果.     (1)导航栏: <html> <head> <title>示例5.1</title> ...

  3. ACM训练小结-2018年6月16日

    今天题目情况如下:A题:线段树+XOR性质.情况:由于写法问题,调试困难,浪费大量时间.B题:(对所有满足i mod p==q,求a[i]之和),无修改,直接上n*sqrt(n)的分块写法.情况:由于 ...

  4. INSPIRED启示录 读书笔记 - 第22章 原型测试

    物色测试者 1.如果你已经拥有一批特约用户,可以邀请他们参加测试 2.如果是企业级产品,同类产品的展销会是寻找目标用户的好去处 3.可以在分类信息网站上发布广告,征集测试者.征集要求可以写得笼统些,不 ...

  5. INSPIRED启示录 读书笔记 - 第10章 管理上司

    十条经验 1.为项目波动做好准备:用项目波动代指让你心烦意乱的各种返工.计划变更.不要企图消灭项目波动,但是可以尽量降低其负面影响.方法是提高警惕,记录工作进度,掌握项目波动的规律,寻找对策.制订项目 ...

  6. Android电容屏(二):驱动调试分析【转】

    本文转载自:http://blog.csdn.net/xubin341719/article/details/7833383 以goodix的gt8105为例 一.总体架构 硬件部分:先看一个总体的图 ...

  7. ubuntu ssh免密码登录

    目前很多服务(ceph,openstack等)都需要用到SSH使用ssh-key进行登录,而不能使用密码进行登录. 下面是配置步骤: 一.在SSH Client生成ssh key pair root@ ...

  8. 2015 ACM/ICPC Asia Regional Changchun Online HDU 5444 Elven Postman【二叉排序树的建树和遍历查找】

    Elven Postman Time Limit: 1500/1000 MS (Java/Others)    Memory Limit: 131072/131072 K (Java/Others)T ...

  9. poj 1330 【最近公共祖先问题+fa[]数组+ 节点层次搜索标记】

    题目地址:http://poj.org/problem?id=1330 Sample Input 2 16 1 14 8 5 10 16 5 9 4 6 8 4 4 10 1 13 6 15 10 1 ...

  10. Solr 报错:java.lang.NoClassDefFoundError: org/apache/http/entity/mime/content/ContentBody

    HBase协处理器中使用Solr时报错,如下 2018-07-11 17:06:14,054 INFO [LruBlockCacheStatsExecutor] hfile.LruBlockCache ...