PL/SQL第三章--游標
游標 就是一個結果集 相當於java中的resultset
語法: cursor 游標名 [(引數名 資料型別【引數名 資料型別】...)] is select 語句;
開啟游標-- open c1;
關閉游標-- close c1;
取一行游標的值-- fetch c1 into 變數名;(取一行到變數中)
游標的屬性
%found
%notfound
案例-1 使用游標查詢員工姓名和工資,並列印
set serveroutput on
declare
--定義一個游標
cursor cemp is select ename,sal from emp;
--為游標定義對應的變數
pename emp.ename%type;
psal emp.sal%type;
begin
--開啟游標
open cemp;
loop
--取一條記錄
fetch cemp into pename,psal;
--迴圈什麼時候退出?fetch語句不一定能取到記錄
exit when cemp%notfound;
--列印
dbms_output.put_line(pename||'的薪水是'||psal);
end loop;
--關閉游標
close cemp;
end;
/
例項:給員工漲工資
set serveroutput on
declare
--定義游標代表給哪些員工漲工資
cursor cemp is select empno,empjob from emp;
pempno emp.empno%type;
pjob emp.empjob%type;
begin
rollback;
open cemp;
loop
fetch cemp into pempno,pjob;
exit when cemp%notfound;
if pjob='PRESIDENT' then update emp set sal=sal+1000 where empno=pempno;
elsif pjob='MANAGER' then update emp set sal=sal+800 where empno=pempno;
end if;
end loop;
close cemp;
--對於oracle預設的事務隔離級別是read commited
--事務的ACID: 原子性 一致性 隔離性 永續性
commit;
dbms_output.put_line('漲工資完成');
end;
/
游標的屬性
%found %notfound %isopen判斷游標是否開啟 %rowcount影響的行數
游標的限制
預設情況下oracle資料庫只允許在同一個會話中,開啟300個游標
修改系統的引數設定
alter system set open_cursors=400 scope=both;
scope的取值:both memory spfile(資料庫需要重啟)
帶引數的游標
語法: cursor 游標名 [(引數名 資料型別【引數名 資料型別】...)] is select 語句;
--查詢某個部門中員工的姓名
set serveroutput on
declare
--定義帶引數的游標
cursor cemp(dno number) is select ename from emp where deptno=dno;
pename emp.ename%type
begin
open cemp(10);
loop
--取出每個員工的姓名
fetch cemp into pename;
exit when cemp%notfound;
end loop;
end;
/
相關文章
- PL/SQL 遊標SQL
- Oralce之PL/SQL程式設計(遊標)SQL程式設計
- 6.4. PL/SQL語法——6.4.6. 遊標SQL
- Oracle PL/SQLOracleSQL
- PL/SQL 宣告SQL
- [20210812]測試sql語句子游標的效能.txtSQL
- PL/SQL 運算子SQL
- PL/SQL 條件SQL
- PL/SQL 迴圈SQL
- pl/sql to_dateSQL
- pl/sql中三種遊標迴圈效率對比SQL
- 游標美化
- input 獲取游標位置與設定游標位置
- [20210816]測試sql語句子游標的效能3.txtSQL
- [20210818]測試sql語句子游標的效能4.txtSQL
- Oracle PL/SQL塊簡介OracleSQL
- ultraedit高亮顯示pl/sqlSQL
- Vim游標移動
- PL/SQL程式設計急速上手SQL程式設計
- Oracle 的PL/SQL語言使用OracleSQL
- PL/SQL 條件控制語句SQL
- [20240607]PL/SQL中sql語句的註解.txtSQL
- 【CURSOR】Oracle 子游標無法共享的原因之V$SQL_SHARED_CURSOROracleSQL
- css 滑鼠游標設定CSS
- 【Swing】JTextField設定游標
- (12)mysql 中的游標MySql
- 阻止游標預設事件事件
- 使用profiler測試Oracle PL/SQL效能OracleSQL
- cad游標大小怎麼調 cad游標中心正方形大小設定
- win10游標怎麼縮放_win10游標縮放方法Win10
- 【CSS: cursor】滑鼠游標指標樣式大全CSS指標
- Oracle - 共享遊標、父子游標、硬軟解析Oracle
- OCP 複習筆記之PL/SQL (3)筆記SQL
- 6.4. PL/SQL語法——6.4.7. 集合SQL
- pl/sql developer的一個小問題SQLDeveloper
- OCP 複習筆記之PL/SQL (2)筆記SQL
- OCP 複習筆記之PL/SQL (4)筆記SQL
- OCP 複習筆記之PL/SQL (5)筆記SQL