oracle数据库PL/SQL之过程和函数(转)
1.基本概念:
? ? ? ? oracle允许在数据库的内部创建并存储编译过的PL/SQL程序,该类程序包括过程、函数、包和触发器。我们可以将商业逻辑、企业规则等写成过程或函数保存到数据库中,通过名称进行调用,以便更好的共享和使用。
? ? ? ? 过程中有三种类型的参数:in/out/in ?out;
2.创建存储过程
1)语法
CREATE [OR REPLACE] PROCEDURE<过程名>
? ? ? ? (<参数1>,[方式1]<数据类型1>,
? ? ? ? ?<参数2>,[方式2]<数据类型2>,
? ? ? ? ...)
IS/AS
PL/SQL过程体;
2)示例
CREATE OR REPLACE PROCEDURE count_num
? ? ? ? (in_sex in TEACHERS.SEX%TYPE)
AS
? ? ? ? out_num NUMBER;
BEGIN
? ? ? ? IF in_sex='M' THEN
? ? ? ? ? ? ? ? SELECT count(SEX) INTO out_num
? ? ? ? ? ? ? ? FROM TEACHERS
? ? ? ? ? ? ? ? WHERE SEX='M';
? ? ? ? ? ? ? ? dbms_output.put_line('NUMBER of Male Teachers:'||out_num);
? ? ? ? ELSE
? ? ? ? ? ? ? ? SELECT count(SEX) INTO out_num
? ? ? ? ? ? ? ? FROM TEACHERS
? ? ? ? ? ? ? ? WHERE SEX='F';
? ? ? ? ? ? ? ? dbms_output.put_line('NUMBER of Female Teachers:'||out_num);
? ? ? ? END IF;
END count_num;
3.调用过程
EXECUTE count_num('M');
EXECUTE count_num('F');
4.删除过程
DROP PROCEDURE count_num;?
函数
1.基本概念
用于计算和返回一个值,调用时需要用表达式;
2.创建函数
CREATE [OR REPLACE] FUNCTION<函数名>
? ? ? ? (<参数1>,[方式1]<数据类型1>,