一,匿名块
匿名块:普通的PL/SQL块都是匿名的,换句话说就是这些程序没有自己的名字,也因此无法保存到数据库中,
每次执行这些程序时都需要临时写出,也就无法重复使用。这种不能保存的、没有名字的PL/SQL块被称为匿名块;
比如:
DECLARE
A NUMBER:=&输入一个数字;
B NUMBER:=&再输入一个数字;
BEGIN
DBMS_OUTPUT.PUT_LINE(A+B);
END;
注:以上就是pl/sql中的匿名块,需要时就写出来,也没有名字,用过以后要想再用再写出来。
二,命名块
命名块:而在实际工作中,PL/SQL块内容都很多,而且往往需要重复使用,每次使用时现场编写代码显然不合适,
更现实的方法是将代码程序直接保存在数据库中,在使用时直接调用即可。
想要保存到数据库中,这些PL/SQL块就必须要有自己的名字加以区分。
这种带着自己名字的、能够被保存到数据库中的PL/SQL块被称为命名块,主要有:过程、函数、触发器、包。
–存储函数 返回两个数的和
CREATE OR REPLACE FUNCTION F_SUM(A NUMBER,B NUMBER)
RETURN NUMBER
IS
S NUMBER;
BEGIN
S:=A+B;
RETURN S;
END;
–调用函数
SELECT F_SUM(4,5) FROM DUAL;
SELECT F_SUM(SAL,NVL(COMM,0)) FROM EMP;
注:存储过程和存储函数的区别就是函数有返回值,