过程
Procedural 执行PL/SQL块的
函数
function 执行PL/SQL块的返回值 return
组成
创建部分
create procedural/function 命名;
执行部分
begin ... end;
异常部分(可选)
exception when 异常类型 then 异常处理;
优点
提高代码的运行效率,可以重复调用,方便维护
过程(Procedure)
简单的过程
规则
(参数类型不能定义长度) 可以是 varchar2;
语法
create [or replace] Procedure 过程的名字 (变量名1 变量类型1,变量名2 变量类型2,...);
as||is
变量名称1 变量类型1;
变量名称2 变量类型2;
...
begin
//代码执行部分
exception when 异常类型 then 异常处理
end
调用(在PL/SQL块中去调用)
[declare
变量名称 变量类型1;
...
]
begin
过程名字(值1,值2);
end
简单的过程
语法
createor replace Procedure 过程名字(myproc)asbegin
//代码的执行部分
例:dbms_output.put_line('Hello Jack');end
调用
begin
过程名字(myproc);
end
带参数的过程:提高灵活性
语法
createor replace Procedure 过程名(my_proc)(names varchar2)asbegin
//执行的代码
例:dbms_output.put_line(name||'Hello');
end
调用
begin
names:='&names';
my_proc(names);
end
带异常的过程
示例:根据员工编号查询员工姓名,并打印(如果没找到记录则为用户输出友好提示)
语法
createor replace Proceduremy_proc(empno_n in number)asename_svarchar(20)beginselectemp.enameintoename_sfromempwhereemp.empno = empno_n;
dbms_output.put_line('员工姓名:'||ename_s);
exception when no_data_found then
dbms_output.put_line('不存在该员工');
end
调用
begin
myproc(值);
end
过程的参数模式
in
输入参数(默认)
out
输出参数
inout
输入,输出参数
语法
createor replace Procedure 过程名(变量名1 in 类型,变量名2 out 类型)
asbegin
//代码的执行部分
end
调用
declare
变量名2 变量类型;begin
过程名(值,变量名2)
end