PL SQL基礎 續四

2021-04-28 18:52:57 字數 1604 閱讀 8313

游標---pl_sql裡面的重點****:

declare   ---loop迴圈

cursor c is  --宣告乙個游標

select * from emp;

v_emp c%rowtype; --宣告一條記錄

begin

open c;   --開啟游標

loop

fetch c into v_emp; --擷取資料。

exit when (c%notfound); --判斷游標是否到終點

dbms_output.put_line(v_emp.ename);

end loop;

close c;  --關閉游標

end;

--while迴圈

declare    

cursor c is

select * from emp;

v_emp emp%rowtype;

begin

open c;

fetch c into v_emp;

while (c%found) loop

dbms_output.put_line(v_emp.ename);

fetch c into v_emp;

end loop;

close c;

end;

--for迴圈,不容易出錯,用得最多。

declare

cursor c is

select * from emp;

begin

for v_emp in c loop --不需要定義v_emp,自動開啟,關閉c.自動fetch資料。

dbms_output.put_line(v_emp.ename);

end loop;

end;

---帶引數的游標

declare

cursor c(v_deptno emp.deptno%type,v_job emp.job%type)

isselect ename,sal from emp where deptno = v_deptno and job = v_job;

begin

for v_temp in c(30,'clerk') loop

dbms_output.put_line(v_temp.ename);

end loop;

end;

---可更新的游標

declare

cursor c

isselect * from emp2 for update; --跟上for update表示可更新游標。

begin

for v_temp in c loop

if(v_temp.sal < 2000) then

update emp2 set sal = sal * 2 where current of c; ---更新游標所指的當前記錄

elsif (v_temp.sal = 5000) then

delete from emp2 where current of c;  ---where current of c.

end if;

end loop ;

end;

SQL語言基礎 續四

oracle下特有的一些東西。rownum認識 oracle 只能和小於 小於等於 搭配使用。記錄剛剛取出來的資料的行號,排序過後的資料不管用。解決辦法,對資料先進行排序,再把結果當作乙個表來用,可把rownum顯示的呼叫出來 對於大於或者區間取值,只能把rownum調出來,再進行比較。update...

PLSQL基礎(四)儲存過程與函式

儲存過程 create or replace procedure 過程名 引數定義部分 is.區域性變數定義部分 begin 可執行部分 exception 異常處理部分 end 過程名 在end後可以加上儲存過程名,也可以不加。如果要在end後加過程名,則必須要和前面的儲存過程名相同。在定義乙個儲...

PL SQL程式設計基礎 PL SQL簡介

課程教師 李興華 課程學習者 陽光羅諾 日期 2018 07 28 知識點 1 了解pl sql的主要特點 2 掌握pl sql塊的基本結構 pl sql語法結構 語法 declare 宣告部分,例如。定義變數 常量 游標。begin 程式編寫 sql語句 exeception 處理異常 end 說...