[独孤九剑]Oracle知识点梳理(六)数据库常用对象之Procedure、function、Sequence
2015-03-15 22:43
507 查看
本系列链接导航:
[独孤九剑]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的地方:
不包含子查询、snapshot、VIEW的 SELECT 语句
INSERT语句的子查询中
INSERT语句的values中
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知识点梳理(五)数据库常用对象之Table、View
- [独孤九剑]Oracle知识点梳理(七)数据库常用对象之Cursor
- [独孤九剑]Oracle知识点梳理(九)数据库常用对象之package
- [独孤九剑]Oracle知识点梳理(十)%type与%rowtype及常用函数
- [独孤九剑]Oracle知识点梳理(二)数据库的连接
- oracle创建trigger procedure function sequence plsql
- [独孤九剑]Oracle知识点梳理(三)导入、导出
- Oracle创建一个type、package、body、function、procedure及常用系统函数。
- oracle 数据库的常用查询对象
- oracle事务和常用数据库对象
- [独孤九剑]Oracle知识点梳理(一)表空间、用户
- Oracle 11g 第十二章知识点总结——其他数据库对象
- [独孤九剑]Oracle知识点梳理(八)常见Exception
- oracle系列(四)oracle事务和常用数据库对象 推荐
- [独孤九剑]Oracle知识点梳理(四)SQL语句之DML和DDL
- [独孤九剑]Oracle知识点梳理(零)目录
- oracle 学习笔记(十一) 数据库常用对象, table ,constraint ,index ,view和数据字典
- Day32 Oracle 3 常用数据库对象
- oracle中procedure、function、sequence小结
- oracle 备份数据库对象(存储过程PROCEDURE,FUNCTION,VIEW,TRIGGER...)