定义包头:
createorreplacepackageex
is
procedureget_user_name(useridinemp.empno%type);
functionget_user_sal(useridinemp.empno%type)returnnumber;
endex;
定义包体:
createorreplacepackagebodyex
is
procedureget_user_name(useridinemp.empno%type)
is
.........
end;
functionget_user_sal(useridinemp.empno%type)returnnumber
is
.........
exception
whenNO_data_founDthen
dbms_output.put_line('NOTFOUND!');
end;
endex;
定义存储过程:
createorreplaceprocedureget_user_name(useridinemp.empno%type)
is
xxemp.ename%type;
begin
selectenameintoxxfromempwhereempno=userid;
dbms_output.put_line(xx);
end;
定义函数:
createorreplacefunctionget_user_sal(useridinemp.empno%type)returnnumber
is
salaryemp.sal%type;
begin
selectsalintosalaryfromempwhereempno=userid;
returnsalary;
exception
whenNO_data_founDthen
dbms_output.put_line('NOTFOUND!');
endget_user_sal;
procedure
CREATE OR REPLACE PROCEDURE 过程名
(参数名 [OUT]参数类型) 默认in in/out/in out 三种参数形式
is
变量
begin
过程体
end;/
执行存储过程 exec procedure_name;
函数function
用于返回特定的数据 经常需要通过执行SQL语句来返回特定数据 基于这些操作建立特定的函数
函数包含return子句 用来进行数据操作 并返回单独的函数值 函数的调用只能在一个表达式
create or replace function 函数名(参数 in/out 参数类型)
return 类型as/is
变量名 类型;
begin
函数过程;
return 变量名
end;
参数 默认输入参数 in
输出参数 out
输入输出参数 in/out out 需要在执行的时候设定变量来接收
调用函数 可以再任意一个PL/SQL程序块中调用 有返回值 必须作为表达式的一部分来调用
=:函数名(参数名)
删除函数 drop function 函数名;
变量类型 table.column%type 指定为某个表的某一个列的数据类型