1. 程式人生 > >Oracle資料庫函式應用學習

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;

  執行結果:姓名張三職位工程師