以下已经测试通过
创建函数:
create or replace function get_annual_sal(in_name varchar2) return number is annual_sal number(9,1); begin select 16*t.salary-10000 into annual_sal from t_employee t where name=in_name; return annual_sal; end;
1. 在PLsql中测试函数的运行结果
select get_annual_sal('李红') from dual;
执行结果
2. 用PLsql中的sql语句调用函数
begin dbms_output.put_line(get_annual_sal('李红')); end;
然后在Output选项卡中可以看到输出结果:
以下没有测试过
oracle11g调用函数的几种方法
----1. 该函数接受3个可选参数,返回3个数字的和
CREATE OR REPLACE FUNCTION add_three_numbers
(
a NUMBER:=0, b NUMBER:=0, c NUMBER:=0
)
RETURN NUMBER IS
BEGIN
RETURN a+b+c;
END;
----调用FUNCTION add_three_numbers
----1. 位置表示法调用函数
BEGIN
dbms_output.put_line(add_three_numbers(2,4,5));
END;
----2. 命名表示法调用函数
BEGIN
dbms_output.put_line(add_three_numbers(b=>3, a=>4,c=>2));
END;
----3. 混合使用位置表示法和命名表示法调用函数
BEGIN
dbms_output.put_line(add_three_numbers(3, b=>4,c=>2));
END;
----4. 排除表示法
BEGIN
dbms_output.put_line(add_three_numbers(12,c=>2));
END;
----5. sql调用表示法 --混合表示法
SELECT add_three_numbers(3, b=>4,c=>2) FROM DUAL;