Oracle資料庫函式應用學習
1:建立無引數的函式
create or replace function func_datetime
return varchar2
is
begin
return to_char(sysdate,
'yyyy"年"MM"月"DD"日" HH24"時"mi"分"ss"秒"');
end func_datetime;
測試無引數的函式:
begin
dbms_output.put_line(func_datetime); --通過輸出語句來呼叫函式
end;
2: 帶輸入值的函式
create or replace function func_isHoliday(p_date date) return integer is
v_weekday integer := -1;
begin
select t_char(p_date, 'd') into v_weekday from dual;
if(v_weekday < 2 or v_weekday > 6) then
return 1;
else
return 0;
end if;
end func_isHoliday;
呼叫帶輸入值的函式:
declare
vdate date := date '2010-12-12';
begin
dbms_output.put_line(func_holiday(vdate));
end;
3:帶有輸出輸入引數的函式
create or replace funcition func_getinfo(empid number, position out varchar2) return varchar2 is
name employees.name % type;
begin
select t.name, p.postname into name, position from employees t, post p
where t.position=p.postid and t.id = empid;
return name;
end func_getinfo;
呼叫帶有輸入和輸出引數的函式:
declare
v_name employees.name % type;
v_post post.postname % type;
begin
v_name := func_getinfo(2, v_post);
dbms_output.put_line('姓名' || v_name || '職位' || v_post);
end;
執行結果:姓名張三職位工程師