以下已經測試通過
創建函數:
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;