[独孤九剑]Oracle知识点梳理(六)数据库常用对象之Procedure、function、Sequence
本系列链接导航:
[独孤九剑]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知识点梳理(六)数据库常用对象之Procedure、function、Sequence的更多相关文章
- [独孤九剑]Oracle知识点梳理(九)数据库常用对象之package
本系列链接导航: [独孤九剑]Oracle知识点梳理(一)表空间.用户 [独孤九剑]Oracle知识点梳理(二)数据库的连接 [独孤九剑]Oracle知识点梳理(三)导入.导出 [独孤九剑]Oracl ...
- [独孤九剑]Oracle知识点梳理(七)数据库常用对象之Cursor
本系列链接导航: [独孤九剑]Oracle知识点梳理(一)表空间.用户 [独孤九剑]Oracle知识点梳理(二)数据库的连接 [独孤九剑]Oracle知识点梳理(三)导入.导出 [独孤九剑]Oracl ...
- [独孤九剑]Oracle知识点梳理(五)数据库常用对象之Table、View
本系列链接导航: [独孤九剑]Oracle知识点梳理(一)表空间.用户 [独孤九剑]Oracle知识点梳理(二)数据库的连接 [独孤九剑]Oracle知识点梳理(三)导入.导出 [独孤九剑]Oracl ...
- [独孤九剑]Oracle知识点梳理(十)%type与%rowtype及常用函数
本系列链接导航: [独孤九剑]Oracle知识点梳理(一)表空间.用户 [独孤九剑]Oracle知识点梳理(二)数据库的连接 [独孤九剑]Oracle知识点梳理(三)导入.导出 [独孤九剑]Oracl ...
- [独孤九剑]Oracle知识点梳理(二)数据库的连接
本系列链接导航: [独孤九剑]Oracle知识点梳理(一)表空间.用户 [独孤九剑]Oracle知识点梳理(二)数据库的连接 [独孤九剑]Oracle知识点梳理(三)导入.导出 [独孤九剑]Oracl ...
- [独孤九剑]Oracle知识点梳理(八)常见Exception
本系列链接导航: [独孤九剑]Oracle知识点梳理(一)表空间.用户 [独孤九剑]Oracle知识点梳理(二)数据库的连接 [独孤九剑]Oracle知识点梳理(三)导入.导出 [独孤九剑]Oracl ...
- [独孤九剑]Oracle知识点梳理(四)SQL语句之DML和DDL
本系列链接导航: [独孤九剑]Oracle知识点梳理(一)表空间.用户 [独孤九剑]Oracle知识点梳理(二)数据库的连接 [独孤九剑]Oracle知识点梳理(三)导入.导出 [独孤九剑]Oracl ...
- [独孤九剑]Oracle知识点梳理(三)导入、导出
本系列链接导航: [独孤九剑]Oracle知识点梳理(一)表空间.用户 [独孤九剑]Oracle知识点梳理(二)数据库的连接 [独孤九剑]Oracle知识点梳理(三)导入.导出 [独孤九剑]Oracl ...
- [独孤九剑]Oracle知识点梳理(一)表空间、用户
本系列链接导航: [独孤九剑]Oracle知识点梳理(一)表空间.用户 [独孤九剑]Oracle知识点梳理(二)数据库的连接 [独孤九剑]Oracle知识点梳理(三)导入.导出 [独孤九剑]Oracl ...
随机推荐
- 011_用eclipse打开hadoop1.2.1源码出现The method getSplits(JobConf, int) is undefined for the type Object错误
出现的错误截图: 此时Eclipse使用的jdk1.8,将编译环境改成jdk1.7就行了,解决. 没问题了. 下面观点是参考如下网址,未经验证.参考:http://blog.csdn.net/onei ...
- imx6qsbd kpp
转: https://blog.csdn.net/zyaiwmy/article/details/54313025 https://www.aliyun.com/jiaocheng/123973.ht ...
- Windos Server 2008 Tomcat 安装
web服务:apache-tomcat-7.0.75环境:jdk-7u80-windows-i586 1.安装jdk环境包 2.配置环境变量--> 环境变量--> 新建W --> 变 ...
- jq中ajax的dataType:"json"是指什么?
dataType String 预期服务器返回的数据类型.如果不指定,jQuery 将自动根据 HTTP 包 MIME 信息来智能判断,比如XML MIME类型就被识别为XML.在1.4中,JSON就 ...
- 20145210姚思羽《网络对抗》MSF基础应用实验
20145210姚思羽<网络对抗>MSF基础应用实验 实验后回答问题 1.用自己的话解释什么是exploit,payload,encode. exploit就是进行攻击的那一步 paylo ...
- OC_NSFileManager
案例1:通过文件扩展名进行搜索文件 NSFileManager *manager = [NSFileManager defaultManager]; /* 在Mac OS X系统有一个代表主目录的速 ...
- 如何在windows10环境下安装Pytorch-0.4.1版本
开始是按照教程:https://blog.csdn.net/xiangxianghehe/article/details/80103095 安装了Pytorch0.4.0,但是安装后发现在import ...
- 安装mysql5.7后无法启动,/var/run/mysqld 目录每次重启后都需要手动去创建--终极解决方案
鉴于很多童鞋反应,mysql5.7安装后出现无法启动,建立/var/run/mysqld 并赋权mysql用户解决了启动的问题,但是重启系统后又出现无法启动的问题,导致/var/run/mysqld ...
- 如何开启和禁止Linux系统的ping功能
在日常的网络维护和使用过程中,ping命令是最为常用的一个检测命令,它所使用的是ICMP协议,但是为了保护主机,很多时候我们需要禁止ICMP协议,在这种情况下,终端再使用ping命令检测,服务器是不会 ...
- HBase-修改表结构
HBase修改表结构 package com.hbase.HBaseAdmin; import java.io.IOException; import org.apache.hadoop.conf.C ...