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;
/
相關文章
- PLSQL Language Referenc-PL/SQL靜態SQL-游標變數-建立游標變數SQL變數
- PLSQL Language Referenc-PL/SQL靜態SQL-靜態SQL的描述-游標-顯式游標SQL
- PLSQL Language Referenc-PL/SQL靜態SQL-游標變數-游標變數賦值SQL變數賦值
- PLSQL Language Referenc-PL/SQL靜態SQL-游標變數SQL變數
- PLSQL Language Referenc-PL/SQL靜態SQL-游標變數-游標變數作為宿主變數SQL變數
- PLSQL Language Referenc-PL/SQL靜態SQL-游標變數-開啟和關閉游標變數SQL變數
- PLSQL Language Referenc-PL/SQL靜態SQL-靜態SQL的描述-游標-開啟和關閉顯式游標SQL
- PLSQL Language Referenc-PL/SQL靜態SQL-游標變數-游標變數作為子程式引數SQL變數
- PL/SQL 遊標SQL
- PL/SQL 04 遊標 cursorSQL
- 【PL/SQL】遊標提取迴圈SQL
- PLSQL Language Referenc-PL/SQL靜態SQL-使用顯式游標OPEN-FETCH-CLOSE處理查詢結果集SQL
- v$sql v$sqlarea v$sql_shared_cursor及父遊標,子游標SQL
- v$sql v$sqlarea和父遊標 子游標記載01SQL
- 一個sql最多可擁有多少子游標SQL
- Oralce之PL/SQL程式設計(遊標)SQL程式設計
- PL/SQL-遊標和遊標變數的使用SQL變數
- input 獲取游標位置與設定游標位置
- 6.4. PL/SQL語法——6.4.6. 遊標SQL
- 【PL/SQL 學習】隱式遊標學習SQL
- PL/SQLSQL
- 游標操作快捷鍵
- winform之手繪矩形及游標字串與游標關聯顯示ORM字串
- SQL&PL/SQL (轉)SQL
- PL/SQL 宣告SQL
- PL/SQL cursorSQL
- PL/SQL打包SQL
- PL/SQL DEVSQLdev
- Oracle PL/SQLOracleSQL
- pl/sql中三種遊標迴圈效率對比SQL
- PL/SQL 中如何正確選擇遊標型別SQL型別
- (12)mysql 中的游標MySql
- 阻止游標預設事件事件
- secureCRT游標不見啦Securecrt
- css 滑鼠游標設定CSS
- win10游標怎麼縮放_win10游標縮放方法Win10
- 使用PL/Scope分析PL/SQL程式碼SQL
- PLSQL Language Reference-PL/SQL概覽-PL/SQL架構SQL架構