oracle顯示遊標和遊標for迴圈案例
ps:我一開始覺得這裡有兩個fetch有點多餘,覺得一個就夠了,於是我只在--顯式遊標案例 declare cursor emp_cursor(department in number default 20) is select empno,ename,job,sal from emp where deptno=department; type employee is record( id emp.empno%type, name emp.ename%type, job emp.job%type, sal emp.sal%type ); emp_row employee; begin open emp_cursor(30); loop fetch emp_cursor into emp_row; exit when emp_cursor%notfound; dbms_output.put('員工編號 '||emp_row.id); dbms_output.put(' 姓名 '||emp_row.name); dbms_output.put(' 職位 '||emp_row.job); dbms_output.put_line(' 薪水 '||emp_row.sal); end loop; dbms_output.put_line('。。。。'); close emp_cursor; end; --顯示遊標案例<span style="color:#FF0000;">寫法二</span>,效果同上 declare cursor emp_cursor(department in number default 20) is select empno,ename,job,sal from emp where deptno=department; type employee is record( id emp.empno%type, name emp.ename%type, job emp.job%type, sal emp.sal%type ); emp_row employee; begin open emp_cursor(30); fetch emp_cursor into emp_row; --fetch1 while emp_cursor%found loop dbms_output.put('員工編號 '||emp_row.id); dbms_output.put(' 姓名 '||emp_row.name); dbms_output.put(' 職位 '||emp_row.job); dbms_output.put_line(' 薪水 '||emp_row.sal); --從遊標中提取下一行資料 fetch emp_cursor into emp_row; --fetch2 end loop; close emp_cursor; end;
while emp_cursor%found loop
這句之後寫了一個fetch語句,但是執行無顯示結果,最本質的原因我可能不是很清楚,縱觀上述兩迴圈方法,我認為,必須先提取資料再判斷 emp_cursor%found方可。遊標for迴圈(在使用遊標for迴圈時,一定不要使用open語句,fetch語句和close語句,否則將產生錯誤)
--遊標for迴圈 declare cursor emp_cursor is select * from emp where deptno=10; row emp_cursor%rowtype; begin for row in emp_cursor loop dbms_output.put(row.empno|| ' '); dbms_output.put(row.ename|| ' '); dbms_output.put(row.job|| ' '); dbms_output.put_line(row.sal); end loop; end;
相關推薦
oracle顯示遊標和遊標for迴圈案例
顯式遊標:--顯式遊標案例 declare cursor emp_cursor(department in number default 20) is select empno,ename,job,sal from emp where deptno=department
Iterator和新增for迴圈
(1)迭代器並非是容器,它的功能是遍歷容器。 (2)要想遍歷,必須知道容器的確切型別,然後編碼進行遍歷,不同的容器有不同的遍歷方式,但是如果使用迭代器的話,就不需要知道容器的型別,因為可以用一種方式遍歷容器中的物件 一、Iterator介面 1、 (1)集合是對C
141-練習6和7 for迴圈和for迴圈的巢狀呼叫
6,程式設計輸出1~100中能被3整除但不能被5整除的數,並統計有多少個這樣的數。 for (int i = 1; i <= 100; i++) { if ((i % 3 == 0) && (i %
ArrayList的迭代器和 超強for迴圈
超強for迴圈 也是用迭代器實現的。有個面試官,問去除ArrayList的一些元素,當時寫的是for迴圈,判斷去除,然後左邊退一位。他說不安全。用迭代器遍歷安全,迭代器包含一個remove方法,去除元素後自帶遊標退一位。主要三個方法,hasnext,next,和remove
lambda表示式foreach和普通for迴圈效能比較
java 8的新特性之一就是lambda表示式,其中lambda表示式的foreach迴圈最為引人注目,現比較下lambda表示式foreach和普通for迴圈的效能測試。程式碼如下: public static void main(String[] args){ List
退出一個while無限迴圈和多重for迴圈
平常我們接觸最多的還有知道的一般都是while中判斷條件不成立後直接break來終止迴圈,後面發現while中直接返回一個空也是可以退出的,雖然簡單但是做個記錄。畢竟後面學java這麼久才留意的。 package page5; public class W
JAVA foreach和普通for迴圈是否需要判斷為null
測試增強for迴圈是否需要判斷為null 例1: public static void main(String[] args) { List<Object> list = n
手動提交事務和在for迴圈裡進行事務控制及宣告式事務的使用例項!
事務場景:需要做一個跑批進行一個流程的實現,0.獲取異常資料(多條),for迴圈對單條資料進行下面三個操作:1).呼叫別的系統進行查詢,2).查詢自己的庫中資料,3)更改自己資料庫中的資料狀態。此時就需要對單條資料操作的3步驟進行事務控制,使用的過程中發現兩個解決辦法:第一:
Oracle儲存過程中游標For迴圈使用
procedure copy(a_id int) is cursor t_cursor is select * from table f where f.id = a_id; v_row table%rowtype; begin
for迴圈案例(上)
1 <!DOCTYPE html> 2 <html> 3 <head lang="en"> 4 <meta charset="UTF-8"> 5 <title></title> 6 </head&g
-for迴圈案例(下)
1 <!DOCTYPE html> 2 <html> 3 <head lang="en"> 4 <meta charset="UTF-8"> 5 <title></title> 6 </head&g
02-for迴圈案例
1 <!DOCTYPE html> 2 <html> 3 <head lang="en"> 4 <meta charset="UTF-8"> 5 <title></title> 6 </head&g
用遞迴和普通for迴圈分別求 1+2+3+...+n
最近在複習遞迴演算法時, 腦海突然想能否用剛剛學到的遞迴方法去解高斯問題呢? 然後自己動手用常規for迴圈和遞迴來程式設計, 看看二者有何不同, 最後的程式碼如下: 雖然有點簡單, 但是還是值得
簡單瞭解一下oracle中的顯示遊標和儲存過程
遊標 遊標主要分兩類動態和靜態遊標,靜態遊標是編譯時知道明確的select語句的遊標,靜態遊標分類兩種,顯示遊標和靜態遊標,這裡只說顯示遊標 顯示遊標 declare name emp.ename%type; sal emp.sal%type; --宣
Oracle PL/SQL顯示遊標、隱式遊標、遊標迴圈
dba基礎課程:Oracle PL/SQL顯示遊標、隱式遊標、遊標迴圈 顯示遊標 使用遊標順序 1.宣告遊標 2.開啟遊標 3.讀取遊標 4.資料是否為空,是關閉遊標,否繼續讀取 1.宣告遊標 cursor cur_name[(input
Oracle使用遊標更新資料 Oracle遊標之select for update和where current of 語句
Oracle使用遊標更新資料 2016年11月20日 13:15:49 hzwy23 閱讀數:5313 友情推廣 ###使用遊標修改資料 ####定義一個遊標,遊標名稱為 mycursor #####更新scott使用者中emp表中empno
oracle的遊標用法,open for循環遊標和fetch into用法上有什麼區別?
open的時候不會讀資料,FETCH才讀。 1、說明遊標。說明遊標的時候並不執行select語句。 declare <遊標名> cursor for <select語句>; 2、開啟遊標。開
Oracle 遊標for迴圈
/* 遊標的for迴圈 pl/sql語言提供了遊標的for迴圈語句,【自動執行遊標的open,fetch,close語句和迴圈語句的功能】,當進入迴圈時, 遊標for迴圈語句自動開啟遊標,並提取第一行遊標的資料,當程式處理完成當前所提取的資料而進入下一次迴圈時, 遊標for
Oracle遊標for迴圈
declare cursor emp_cursor is select * from tg_test_user; begin for tg_test_user in emp_cursor
SQL中的迴圈、for迴圈、遊標
--SQL中的迴圈、for迴圈、遊標 --1. 利用遊標迴圈更新、刪除MemberAccount表中的資料 DECLARE My_Cursor CURSOR --定義遊標 FOR (SELECT * FROM dbo.MemberAccount) --查出需要的集合放到遊標中 OPE