-- Start
子程序其实就是一个有名字的语句块,有两种类型的子程序,存储过程和函数。它们之间的区别是函数有返回值而存储过程没有。
嵌套函数(Nested Function)
一个函数可以定义在匿名块或另一个子程序中,我们把它叫做嵌套函数。
DECLARE
ming varchar2(20) := 'Bo';
xing varchar2(20) := 'Shang';
-- 定义嵌套函数
FUNCTION full_name(
first_name varchar2, -- 注意,此处参数不能指定长度哦
last_name varchar2
)
RETURN varchar2 -- 此处也不能指定长度哦
AS
-- 在此处申明变量
full_name varchar2(40);
BEGIN
full_name := last_name || ' ' || first_name;
return full_name;
END full_name;
BEGIN
-- 调用函数方式一
DBMS_OUTPUT.PUT_LINE(full_name(ming, xing));
-- 调用函数方式二
DBMS_OUTPUT.PUT_LINE(full_name(first_name => ming, last_name => xing));
END;
<