ORACLE數據庫學習03

PL/SQL學習。缺點(移植性不好,如果換了數據庫則存儲過程不能用了)。

創建存儲過程。create or replace procedure szy_pro1(過程名) is 

begin

--執行的操作,sql語句。

end; 

調用存儲過程有兩種形式,1.exec 過程名(參數1,參數2 ....)   2.call 過程名(參數1,參數2 .....)

PL/SQL部分相當於是塊的編程,塊有三部分構成:定義部分declare ,執行部分 begin ,例外處理部分 exception ;

例如 declare v_ename varchar2(5)

begin

select ename into v_ename from emp where empno=&no;

dbms_output.put line('僱員名字是'||v_ename);

end;

帶異常處理的

declare v_ename varchar2(5)

begin

select ename into v_ename from emp where empno=&no;

exception when no_data_found then 

dbms_output.put line('沒有數據');

end;

存儲過程的 創建

(1)可以輸入僱員名稱,新工資,可修改僱員名稱

create procedure szy_pro1(spName varchar2,newSal number) is

begin

--執行部分

update emp set sal=newSal where ename=spName;

end;

函數,是返回特定數據。函數裏面必有return語句。

(2)該函數返回固定員工的工資

create function 函數名(name varchar2) return number is mysal number(7,2);

begin

select sal into mysal from emp where ename =name;

end;

然後便是這個函數的調用,

var a number;

call 函數名('SCOTT') into:a;

包,包用於在邏輯上組合過程和函數,他由包規範和包體兩部分組成

包的創建

create or replace package szy_package is

procedure update_sal(name varchar2,newsal number);

function annual_income(name varchar2) return number;

end;

包只有含函數和過程的說明,但沒有實現。包體便是實現包裏的函數和過程。

建立包體 create package body szy_package is

procedure update_sal(參數) is

begin

end;

annual_income(參數)  is

begin 

end;

如何調用包體的過程或則函數,則 包名.函數名/過程名

call szy_package.update_sal(參數...);



發佈了45 篇原創文章 · 獲贊 2 · 訪問量 6萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章