1.描述怎么创建一个简单的存储函数
我们可以直接做DML来对表进行操作,但是我们有时候却需要一个统一的方式来把操作集中起来,可以类比java中方法的概念;
2.创建过程
CREATE [OR REPLACE] FUNCTION function_name
[ (argment [ { IN | IN OUT }] Type,
argment [ { IN | OUT | IN OUT } ] Type ]
[ AUTHID DEFINER | CURRENT_USER ]
RETURN return_type
{ IS | AS }
<类型.变量的说明>
BEGIN
<span style="white-space:pre"> </span>FUNCTION_body
EXCEPTION
其它语句
END;
关于out参数:
IN 参数 标记表示传递给函数的值在该函数执行中不改变; OUT 标记表示一个值在函数中进行计算并通过该参 数传递给调用语句; IN OUT 标记表示传递给函数的值可以变化并传递给调用语句. 若省略标记, 则参数 隐含为 IN
这个是说明:简单来说就是:无参的函数:
create or replace function name
return varchar2
is
v_sal number;
begin
select sal into v_sal from emp where ename='A';
end ;
有参数 :
create or replace function name(v_ename emp.ename%type)
return varchar2
is
v_sal number;
begin
select sal into v_sal from emp where ename=v_ename;
end ;
简单来说,就是这个样子,如果要跟复杂的操作,就自己手敲吧
存储过程语法:
CREATE [OR REPLACE] PROCEDURE Procedure_name
[ (argment [ { IN | IN OUT }] Type,
argment [ { IN | OUT | IN OUT } ] Type ]
[ AUTHID DEFINER | CURRENT_USER ]
{ IS | AS } <类型.变量的说明>
BEGIN <执行部分>
EXCEPTION <可选的异常错误处理程序>
END;
和函数一致,只是存储过程没有返回值;