我们知道存储过程的调用是一条 PL/SQL 语句。那么对于一些表达式我们用什么呢?这里函数的功能就会体现出来了。
函数和过程在创建方式上有很多的类似地方,也是编译后放入内存中以供用户使用,只不过函数调用的时候是以表达式的形式。另外,函数必须有返回值,而过程是没有的。
创建函数:
创建函数的语法如下:
CREATE [OR REPLACE] FUNCTION(<参数1>,[方式1]<数据类型1>,<参数2>,[方式2]<数据类型2>......) RETURN<表达式> IS|AS PL/SQL 主体
其中 RETURN 是声明返回值的类型,而在函数的主体部分必须有一个 RETURN。通常来说函数只有 in 类型的参数。
例子:根据员工的职位查找当前职位员工的个数
create or replace function count_num(in_job in varchar2) return number is out_num NUMBER; begin select count(*) into out_num from emp where job = in_job; return(out_num); end count_num;
调用函数
select count_num(‘CLERK‘) from dual; COUNT_NUM(‘CLERK‘) ------------------ 3
当然我们也可以在程序中调用:
DECLARE count_number NUMBER; BEGIN count_number:=count_num(‘CLERK‘); END
删除函数
当一个函数不再使用的时候可以对其进行删除。
DROP FUNCTION count_num;
当你发现一个函数已经存在,想要修改它只需要使用 CREATE OR REPLACE FUNCTION count_num; 并不是删除再重新创建。
时间: 2024-11-08 09:00:55