玩轉Oracle-PLSQL控制結構_第1頁
玩轉Oracle-PLSQL控制結構_第2頁
玩轉Oracle-PLSQL控制結構_第3頁
玩轉Oracle-PLSQL控制結構_第4頁
玩轉Oracle-PLSQL控制結構_第5頁
免費預覽已結束,剩余1頁可下載查看

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領

文檔簡介

1、、介紹:條件,循環(huán),順序控制結構; 、條件分支語句; if-then , if-then-else, if-then-elseif -else; 、簡單的判斷語句; SQL -編寫一個過程,可以輸入一個員工名, SQL -如果該員工工資低于 2000,就給該員工增加 10%; SQL create or replace procedure mypro(spName varchar2) is 2 - 定義; 3 v_sal emp.sal%type; 4 begin 5 - 執(zhí)行 6 select sal into v_sal from emp where ename=spName; 7 - 判

2、斷; 8 if v_sal create or replace procedure mypro(spName varchar2) is 2 -define 3 v_comm m%type; 4 begin 5 - 執(zhí)行; 6 select comm into v_comm from emp where ename=spName; 7 8 - 判斷; 9 if v_comm0 then 10 update emp set comm=comm+100 where ename=spName; 11 else 12 update emp set comm=comm+200 where ename=sp

3、Name; 13 end if; 14 end; 15 / Procedure created. 注意: oracle pl/sql 中的不等于是 而不是! =; 、多重條件分支; if-then-elsif-else; 注意 :s 是 elsif 而不是 elseif ; PRESIDENT , SQL -編寫一個過程,可以輸入雇員號,如果該雇員的職位是 SQL -借給他增加 1000 工資,如果是 manager,就增加 500, SQL -如果是其他就增加 200; SQL SQL create or replace procedure mypro(spNo number) is 2 -

4、define 3 v_job emp.job%type; 4 begin 5 - 執(zhí)行; 6 select job into v_job from emp where empno=spNo; 7 8 - 判斷; 9 if v_job=PRESIDENT then 10 update emp set sal=sal+1000 where empno=spNo; 11 elsif v_job=MANAGER then 12 update emp set sal=sal+500 where empno=spNo; 13 else 14 update emp set sal=sal+200 where

5、 empno=spNo; 15 end if; 16 end; 17 / Procedure created. 、循環(huán)語句: loop 簡單循環(huán): loop ;這種循環(huán)以 loop 開頭,以 end loop 結尾,至少被執(zhí)行一次; SQL -現(xiàn)在有一張表 用戶 id,用戶名; SQL -編寫一個過程,可以輸入用戶名, SQL -并添加 10 個用戶到表中,用戶編號從 1開始; SQL SQL -創(chuàng)建用戶表; SQL create table users(id number(3) , name varchar2(5); Table created. SQL -創(chuàng)建過程; SQL create

6、or replace procedure mypro(spName varchar2) is 2 - 定義部分; 3 - 定義循環(huán)的次數; 4 v_num number :=1; 5 begin 6 - 執(zhí)行部分; 7 - 循環(huán); 8 loop 9 insert into users values(v_num , spName); 10 - 判斷是否要推出循環(huán); 11 - 注意,判斷是否相等用 =,而賦值的時候用 :=; 12 exit when v_num=10; 13 -自增; 14 -注意,判斷是否相等用 =,而賦值的時候用 :=; 15 v_num:=v_num+1; 16 end l

7、oop; 17 end; 18 / Procedure created. 、 while 循環(huán); 基本循環(huán)至少要執(zhí)行一次,而對于 while 循環(huán)來說,只有條件為 true 時候,才會執(zhí)行循環(huán)體 語句, while 循環(huán)以 while , loop 開始,以 end loop 結束; SQL -編寫一個過程,可以輸入用戶名, SQL -并添加 10 個用戶到表中,用戶編號從 11 開始; SQL SQL -創(chuàng)建過程; SQL create or replace procedure mypro(spName varchar2) is 2 - 定義部分; 3 - 定義循環(huán)的次數; 4 v_num

8、number :=11; 5 begin 6 - 執(zhí)行部分; 7 - 循環(huán); 8 while v_num begin 2 for i in reverse 21.30 loop 3 insert into users values(i,zhao); 4 end loop; 5 end; 6 / PL/SQL procedure successfully completed. 、順序控制語句: goto, null ; 、 goto 語句:用于跳轉到特定符號去執(zhí)行語句,注意由于使用 goto語句會增加程序的發(fā) 雜度,并使得程序的可讀性較差,所以建議大家不適用 goto 語句; SQL set s

9、erveroutput on; SQL declare 2 i int:=1; 3 begin 4 loop 5 dbms_output.put_line(OUt put : |i); 6 if i=10 then 7 goto end_loop; 8 end if; 9 i:=i+1; 10 end loop; 11 12 dbms_output.put_line(Loop END!); 13 end; 14 / OUt put : 1 OUt put : 2 OUt put : 3 OUt put : 4 OUt put : 5 OUt put : 6 OUt put : 7 OUt pu

10、t : 8 OUt put : 9 OUt put : 10 Loop END! 、 null :null 語句不會執(zhí)行任何操作,并且會直接將控制傳遞到下一條語句。使用null 主 要是為了提高 pl/sql 的可讀性; SQL create or replace procedure mypro is 2 v_sal emp.sal%type; 3 v_ename emp.ename%type; 4 begin 5 select ename , sal into v_ename , v_sal 6 from emp where empno= 7 if v_sal3000 then 8 update emp set comm=sal*0.1 where ename=v_ename; 9 else 10 null; 11 end if;

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 4. 未經權益所有人同意不得將文件中的內容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
  • 6. 下載文件中如有侵權或不適當內容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論