ORACLE存储过程
存储过程语法结构
CREATE [OR REPLACE] PROCEDURE 存储过程名[(参数[IN|OUT|IN OUT] 数据类型...)]
{AS|IS}
[说明部分]
BEGIN
可执行部分
[EXCEPTION
错误处理部分]
END [过程名];
无参数无返回值的存储过程
create procedure print_proc
is
begin
('欢迎学****存储过程');
end;
无参数无返回值的存储过程
该存储过程的作用是向指定表插入一行记录
create procedure insert_proc
is
begin
insert into tab values(1,'aa');
end;
无参数无返回值的存储过程
--ID主键通过序列产生
create procedure insert_proc
is
begin
insert into tab values(,'aa');
end;
有参数无返回值的存储过程
--参数类型不要指定长度
--in关键字表示这是一个输入类型参数
在存储过程中不能为输入类型参数重新赋值
create procedure(name in varchar2)
is
begin
insert into tab values(,name)
end;
有参数有返回值的存储过程
--out标识该参数是输出类型参数
--该存储执行完毕过后会返回name
create procedure getNameById(
id in number,name out varchar2)
is
begin
select ename into name from tab where eid=id;
end;
调用有参数有返回值的存储过程
--输出类型参数同样要传递参数
--存储过程会把相应的值存到该参数中
declare
name %type;
begin
getNameById(1,name);
(name);
end;
包含异常处理的存储过程
create procedure getname(id in number,
name out varchar2)
is
begin
select ename into name from emp where empno=id;
exception
when no_data_found then
('没有编号为'||id||'的员工');
name:='defaultname';
end;
返回%TYPE类型
--在传递参数时类型要一致
create procedure Fetchname(id in number,name out %type)
is
begin
select ename into name from emp where empno=id;
exception
when no_data_found then
('没有编号为:'||id||'的员工');
name:='der';
end;
存储过程详解 来自淘豆网www.taodocs.com转载请标明出处.