PLSQL 建立函式

2021-07-23 22:42:44 字數 2729 閱讀 2370

【無引數】

--建立乙個函式,返回當前日期,有返回值無引數

create

orreplace function get_sysdate

return date

asv_date date;

begin

v_date := sysdate;

return v_date;

end;

【呼叫方式】

begin

dbms_output.put_line(to_char(get_sysdate,'yyyy"年"-mm"月"-dd"日"'));

end;

【預設 in 型引數】

--定義乙個函式,獲取給定部門的工資總數。要求:部門號定義為 引數,工資總額定義為返回值;

create

orreplace function get_sal(dept_id number)

return number//返回number型別

as//宣告變數,記錄工資總和

v_sumsal number(10) := 0;

cursor salary_cursor is select salary from employees where department_id = dept_id;

begin

for c in salary_cursor loop

v_sumsal := v_sumsal +c.salary;

end loop;

return v_sumsal;

end;

【函式的呼叫方式】

【第一種呼叫方式】

begin

dbms_output.put_line(get_sal(80));

end;

【第二種呼叫方式】

select get_sal(80) from dual;

【帶有 out 型引數】

--定義乙個函式,獲取給定部門的工資總和和該部門的員工總數。

--要求:部門號定義為 引數,工資總額定義為返回值;

create

orreplace function get_salsum(dept_id number,total_count out number)

//total_count為 out 型引數

return number

asv_sumsal number(10) := 0;

//定義游標,進行迴圈疊加

cursor salary_cursor is select salary from employees where department_id = dept_id;

begin

//為total_count賦初值 0 ;

total_count := 0;

for c in salary_cursor loop

v_sumsal := v_sumsal +c.salary;

total_count := total_count + 1;

end loop;

return v_sumsal;

end;

【呼叫方式】

declare

v_num number(10);

begin

dbms_output.put_line(get_salsum(80,v_num));

dbms_output.put_line(v_num);

end;

結果:工資綜合、員工數

【in out 型引數】

create

orreplace function get_salsum(dept_id number,total_count in out number)

return number

asv_sumsal number(10) := 0;

cursor salary_cursor is select salary from employees where department_id = dept_id;

begin

//同比上,這裡不再為total_count賦初值,而是取用呼叫該函式時,傳進來的值

for c in salary_cursor loop

v_sumsal := v_sumsal +c.salary;

total_count := total_count + 1;

end loop;

return v_sumsal;

end;

【呼叫方式】

declare

v_sum number(10) := 10;

//為total_count賦初值 10 ;

begin

dbms_output.put_line(get_salsum(80,v_sum)) ;

dbms_output.put_line(v_sum);

end;

結果:工資總和、員工數

PL SQL 建立使用者

1 以sysdba身份登入pl 2 右鍵 user new 新建使用者 3 彈出新建使用者視窗,在 general 選項卡中,填寫 name 使用者名稱 password 密碼 4 切換到 role privileges 選項卡 role選擇connect,勾選 default exp full d...

PL SQL過程和函式的建立與使用

過程和函式由以下4部分 過程簡單示例 create or replace procedure show line ip line length in number,ip separator in varchar2 is actual line varchar2 150 begin insert in...

pl sql建立表空間

pl sql建立表空間 2008 11 18 00 33 通過pl sql登入到oracle資料庫上,然後執行選單 檔案 新建 命令視窗 開啟乙個命令視窗然後在該命 令視窗中執行指令碼建立和刪除表空間 建立表空間 create tablespace mof temp datafile d oracl...