oracle中pl sql程式設計 三

2021-08-09 00:09:18 字數 2589 閱讀 1937

oracle中pl/sql程式設計(三):

pl/sql的控制結構:

提供了三種條件的分支語句:

a)if--then;

b)if --then--else

c)if --then-elsif(注意這裡不是elseif)--else

簡單的條件判斷 if-then

--案例:編寫乙個過程,可以輸入乙個雇員名,如果該雇員的工資

低於2000,就給該雇員工資增加10%

create or replace procedure sp_pro4(spname varchar2) is

--定義

v_sal emp.sal%type;

begin

--執行部分

select sal into v_sal from emp where ename=spname;

--if判斷

if v_sal<2000 then

update emp set sal = sal+sal*0.1 where ename=spname;

end if;(這裡特別注意,別漏寫)

end;

/二重條件分支 if-then-else

--案例:編寫乙個過程,可以輸入乙個雇員名,如果該雇員的補助不是0,就在

原來的基礎上增加100;如果補助為0,就把補助設為200

create or replace procedure sp_pro5(spname varchar2) is

--定義

v_comm emp.comm%type;

begin

--執行部分

select comm into v_comm from emp where ename=spname;

--if判斷

if v_comm<>0 then

update emp set comm = comm+100 where ename=spname;

else

update emp set comm = comm+200 where ename=spname;

end if;

end;

/多重條件分支 if--then-elsif-else

--案例:編寫乙個過程,可以輸入乙個雇員編號,如果該雇員的職位是president,

就給他的工資增加1000,如果該雇員的職位是manager,就給他的工資增加500,

其他職位的雇員工資增加200

create or replace procedure sp_pro6(spno number) is

--定義

v_job emp.job%type;

begin

--執行

select job into v_job from emp where empno=spno;

--判斷

if v_job='president' then

update emp set sal = sal +1000 where empno=spno;

elsif v_job='manager' then

update emp set sal = sal +500  where empno=spno;

else

update emp set sal = sal +200  where empno=spno;

end if;

end;

/迴圈語句-loop:

這種迴圈語句以loop開頭,以end loop結尾.這種迴圈至少會被執行一次

--案例:編寫乙個過程,可以輸入使用者名稱,並迴圈新增10個使用者到

users表中,使用者編號從1開始增加

create or replace procedure sp_pro7(spname varchar2) is

--定義

v_num number:=1;

--執行

begin

--迴圈

loop

insert into users values(v_num,spname);

--判斷(是否退出)

exit when v_num=10;

--不退出就自增

v_num:=v_num+1;

end loop;

end;

/迴圈語句--while迴圈:

只有條件為ture時,才會執行迴圈體語句,while迴圈以while....loop開始,

以end loop結束

--案例:編寫乙個過程,可以輸入使用者名稱,並迴圈新增10個使用者到users表中,

使用者編號從11開始增加

create or replace procedure sp_pro8(spname varchar2) is

--定義

v_num number:=11;

--執行

begin

--迴圈

while v_num<=20 loop

insert into users values(v_num,spname);

--自增

v_num:=v_num + 1;

end loop; 

end;

/

Oracle的pl sql程式設計

1pl sql程式設計 1.1建立過程過程 create or replace procedure 引數名 in out 引數型別 沒有長度 名字 is begin pl sql程式設計語句 end 名字 ps 最有一定要加分號和斜槓 1.2呼叫 exec 過程名 引數 call 過程名 引數名 1...

Oracle的PL SQL程式設計

pl sql把sql的資料操作功能同過程語言的資料處理功能結合起來。宣告作用 declare 變數 游標 使用者自定義型別 異常 variables,cursors,user defined,exceptione 程式開始 begin sql statements pl sql statements...

實驗三 PLSQL程式設計

1.實驗目的 熟悉pl sql子程式設計。2.實驗內容 建立儲存過程pro studentsnotuptostandar返回指定系部未修夠指定學分的學生 資訊,包括學生的基本資訊,以及學生所有選課的課程資訊和成績。3.1 儲存過程pro studentsnotuptostandar呼叫後的輸出顯示效...