先导知识
declare
--说明部分
变量 表名.列名%type;--引用型变量
变量 表名%rowtype;--记录型变量
begin
--数据操作
exception
--例外处理语句
end;
/
判断语句
if 条件 then 语句;
elsif 语句 then 语句;
else 语句;
end if;
循环语句
--1.while循环
while i<=10 loop
i:=i+1;
end loop;
--2.loop循环
loop
exit when i>=10;
end loop;
--3.for循环
for i in 1..10 loop
end loop;
游标
游标属性
%ROWCOUNT 整型 获得FETCH语句返回的数据行数
%FOUND 布尔型 最近的FETCH语句返回一行数据则为真,否则为假
%NOTFOUND 布尔型 与%FOUND属性返回值相反
%ISOPEN 布尔型 游标已经打开时值为真,否则为假
--1.定义游标
cursor 游标名 is select 字段名 from 表名;
--2.打开游标
open 游标名;
--3.取记录
fetch 游标名 into 要存放的变量里;
--4.关闭游标
close 游标名
--5.游标与循环
declare
cursor 游标名 is select 字段名 from 表名; --声明游标
begin
open 游标名;--打开游标
loop
fetch 游标名 into 要存放的变量里;--取记录
exit when 游标名%notfound;--游标遍历完,退出循环
end loop;
end;
存储过程
--1.调用存储过程
--方法一
exec 存储过程名
--方法二
begin
存储过程名();
--2.创建带参数的存储过程
create [or replace] procedure 存储过程名(输入变量1 in 数据类型,输出变量2 out 数据类型)
as
--说明部分
begin
--数据操作
end;
/
存储函数
create [or replace] function 函数名(输入变量1 in 数据类型,输出变量2 out 数据类型)
return 返回值类型
as
--说明部分
begin
--数据操作
--return 返回值;
end;
/
存储过程和存储函数的区别
存储函数必须有一个return
存储过程和存储函数可以有一个或多个out参数