1、创建的关键字不同 :
过程:PROCEDURE
函数:FUNCTION
2.调用方式:
3.返回值:
存储过程无返回值,存储函数通过 RETURN 返回信息;
4.目的:
存储过程的目的:完成一系列数据处理;
存储函数的目的:获取函数返回值;
5.
6.
举例:
--求部门的年收入
CREATE OR REPLACE FUNCTION func4
(v_deptno IN NUMBER DEFAULT 10,v_t IN NUMBER)
RETURN NUMBER
IS
v_sumsal NUMBER;
BEGIN
SELECT SUM((sal+nvl(comm,0))*12)
INTO v_sumsal
FROM emp
WHERE deptno = v_deptno;
DBMS_OUTPUT.put_line('测试:'||v_t);
RETURN v_sumsal;
EXCEPTION
WHEN NO_DATA_FOUND THEN
DBMS_OUTPUT.put_line('没有此部门');
WHEN OTHERS THEN
DBMS_OUTPUT.put_line(SQLERRM);
END;
--调用
declare
v_totalsal number;
begin
v_totalsal := func4(v_t=>1);
dbms_output.put_line(v_totalsal);
end;