目录
函数是可以返回值的命名的 PL/SQL 子程序。
1.语法
CREATE [OR REPLACE] FUNCTION
<function name> [(param1,param2)]
RETURN <datatype> IS|AS
[local declarations]
BEGIN
Executable Statements;
RETURN result;
EXCEPTION
Exception handlers;
END;
2.定义函数的限制
函数只能接受 IN 参数,而不能接受 IN OUT 或 OUT 参数
形参不能是 PL/SQL 类型,只能是数据库类型
函数的返回类型也必须是数据库类型
3.访问函数的两种方式
- 使用 PL/SQL 块
- 使用 SQL 语句
4.实战演练
-- 建立函数(编译有错误,可以使用show error查看错误信息)
create or replace function test_func
return varchar2
is
begin
return 'hello,Logan';
end;
-- 在SQL中调用
select test_func from dual;
-- 在PL/SQL中调用(首先需要执行:set serverout on)
declare
str varchar2(40);
begin
str := test_func;
dbms_output.put_line(str);
end;
5.过程和函数的区别
过程 | 函数 |
---|---|
作为 PL/SQL 语句执行 | 作为表达式的一部分调用 |
在规格说明中不包含 RETURN 子句 | 必须在规格说明中包含 RETURN 子句 |
不返回任何值 | 必须返回单个值 |
可以包含 RETURN 语句,但是与函数不同,它不能用于返回值 | 必须包含至少一条 RETURN语句 |