9、存储过程

CREATE OR REPLACE PROCEDURE 存储过程名称【(存储过程参数)IS 
BEGIN 
	pl/sql语句;
【EXCEPTION】
	【异常pl/sql语句】;
END 存储过程名称;

注:
1、存储过程参数是存储过程被调用或执行时用到的参数,不是存储过程定义的内部变量,内部变量是is/as 关键字后面定义。
2、执行存储过程:
sql*plus 中 execute 存储过程名称;
pl/sql块 中 begin 存储过程名称; end;
3、存储过程的参数包括 IN、OUT、IN OUT 三种。

3.1)in模式参数是一种输入类型参数,参数由调用方式传入并只能被存储过程读取。
向存储过程传递参数
指定名称传递 pro_name(prarmeter1 => value1…)
按位置传递
混合传递(名称+位置),当使用指定名称传递之后,后面的参数都要指定名称。

create or replace procedure insert_dept(
	num_deptno in number,--参数名 in  参数类型 且不能加长度,in参数默认值形式 (num_deptno in number default '41401')
	var_ename in varchar2
) is   
begin 
....
end insert_dept;

3.2)out模式参数为输出类型的参数,表示参数在存储过程中已经赋值,并且这个参数可以传递到存储过程以外的环节中,关键字OUT。
在pl/sql块中调用out模式需要在declare部分定义out 参数的变量
declare
var_name dept.dname%type;
begin
insert_dept(99,var_name);
end;
在sql/plus中调用out模式需要声明variable
variable var_dname varchar2(50);
exec insert_dept(99,var_dname);

create or replace procedure insert_dept(
	num_deptno in number,--参数名 in  参数类型 且不能加长度
	var_ename out dept.dname%type --参数名 out  参数类型
) is   
begin 
....
end insert_dept;

4、删除存储过程 DROP PROCEDURE 存储过程名称;

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值