




版權說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權,請進行舉報或認領
文檔簡介
1、PL/SQL 目錄顯式游標簡介顯式游標屬性游標 FOR 循環(huán)帶參數(shù)的游標運用游標更新數(shù)據(jù)運用多個游標顯式游標簡介此部分將講解:區(qū)分顯式游標和隱式游標在 PL/SQL 中為什么、何時運用顯式游標如何聲明、運用顯式游標聲明游標翻開游標獲取數(shù)據(jù)封鎖游標顯式游標簡介經(jīng)過前面學習我們知道,在 PL/SQL中運用 SQL SELECT 語句一次只能獲取一條記錄.假設他需求執(zhí)行前往多行記錄的 SELECT 語句呢? 例如, 生成有關一切員工的報表.要前往多行記錄, 需求運用顯式游標.游標和上下文區(qū)域Oracle 效力為SQL語句分配一塊私有內(nèi)存區(qū)域用于保管相關數(shù)據(jù) ,此內(nèi)存區(qū)稱為上下文區(qū)域 context
2、area .每個上下文區(qū)域(因此也就是每條 SQL 語句) 都有一個關聯(lián)的游標.他可把游標看作上下文區(qū)域的標簽或指針. 現(xiàn)實上, 游標兩者都是.隱式和顯式游標有兩種游標:隱式游標Implicit cursors: Oracle自動為一切 SQL DML 語句 (INSERT, UPDATE, DELETE and MERGE) 和 單行 SELECT 語句定義.顯式游標Explicit cursors:程序員為多行查詢語句聲明. 可運用顯式游標命名上下文區(qū)域并訪問其中的數(shù)據(jù).隱式游標的限制EMPLOYEES 表有多條記錄:DECLARE v_salary employees.salary%TY
3、PE;BEGIN SELECT salary INTO v_salary FROM employees; DBMS_OUTPUT.PUT_LINE( Salary is : | v_salary);END;顯式游標經(jīng)過顯式游標, 他可從數(shù)據(jù)庫獲取多條記錄, 得到一個可指向每行記錄的指針, 逐行處置每條記錄.下面是運用顯式游標的部分緣由:它是 PL/SQL 中一次從數(shù)據(jù)表獲取多條記錄的獨一方法.程序語句逐行獲取每行記錄, 程序員可更靈敏的處置數(shù)據(jù).顯式游標例如下例運用顯式游標獲取亞洲國家的國家名和國慶節(jié)日期.顯式游標多行查詢前往的記錄集稱為活動集 active set , 保管在上下文區(qū)域中.
4、包括符合查詢條件的一切記錄.顯式游標把上下文區(qū)域 (經(jīng)過 cursor 命名) 看成一個盒子, 活動集看作盒子內(nèi)內(nèi)容. 獲取數(shù)據(jù), 必需 OPEN 盒子 每次一行獲取一切數(shù)據(jù) FETCH .數(shù)據(jù)取完必需 CLOSE 盒子.顯式游標顯式游標顯式游標游標的活動集由聲明游標時給出的語句決議.語法:語法中:cursor_name 是 PL/SQL 標識符select_statement 是沒有 INTO 子句的 SELECT 語句顯式游標游標 emp_cursor 用于從employees表獲取 部門 30 的員工的 employee_id 和 last_name.顯式游標游標 dept_cursor
5、 用于獲取 location_id 為1700 的一切部門 信息. 我們想按部門稱號升序陳列并處置數(shù)據(jù).顯式游標游標中的 SELECT 語句可包含聯(lián)接, 分組函數(shù)和子查詢. 下例要獲取至少有兩名員工的部門 ,包括部門稱號和員工人數(shù).顯式游標游標的 SELECT語句中不能包含 INTO 子句,由于后面用 FETCH 語句獲取數(shù)據(jù)時會有.假設需求按一定順序處置記錄, 那么在游標定義查詢中運用 ORDER BY 子句.游標的 SELECT語句可為恣意合法的 SELECT語句,可包含聯(lián)接, 分組函數(shù)和子查詢.假設游標中用到了 PL/SQL 變量, 變量要先于游標定義.例如游標中可援用變量DECLARE
6、 v_dept_id NUMBER := 90; CURSOR cur_emp IS SELECT salary FROM employees WHERE department_id = v_dept_id; v_salary NUMBER;BEGIN OPEN cur_emp; LOOP FETCH cur_emp INTO v_salary; EXIT WHEN cur_emp%NOTFOUND; dbms_output.put_line(v_salary); END LOOP;END;翻開游標OPEN 語句執(zhí)行游標中的查詢語句, 得到活動集, 把游標指針指向活動集第一行. OPEN 語句
7、該當在 PL/SQL 塊的執(zhí)行部分.翻開游標OPEN 語句執(zhí)行以下操作:1. 分配上下文區(qū)域 (創(chuàng)建盒子)2. 執(zhí)行游標的 SELECT 語句, 前往結果放入活動集 (用數(shù)據(jù)填充盒子)3. 把游標指針指向活動集第一行.獲取數(shù)據(jù)FETCH 語句每次從游標獲取一行記錄. 獲取完成,游標指向活動集中下一條記錄. 變量 v_empno 和 v_lname, 用于存放從游標獲取的數(shù)據(jù).獲取數(shù)據(jù)他如今勝利獲取了一行記錄但是, 部門 30 有 6 名員工. 他只獲取了一行. 要獲取一切記錄,必需運用循環(huán).獲取數(shù)據(jù)指南FETCH .INTO 子句中變量和 SELECT 語句中的列個數(shù)必需一樣, 按順序匹配,數(shù)
8、據(jù)類型要兼容.變量和列按位置順序匹配.要測試游標能否包含數(shù)據(jù). 假設 fetch 沒有取回數(shù)據(jù), 活動集中就不再有記錄需求處置,也不會發(fā)生錯誤. 最后獲取的一行記錄會在循環(huán)中被反復處置.可運用 %NOTFOUND 游標屬性作為循環(huán)退出條件.獲取數(shù)據(jù)下例有什么錯誤?DECLARE CURSOR emp_cursor IS SELECT employee_id, last_name, salary FROM employees WHERE department_id = 30; v_empno employees.employee_id%TYPE; v_lname employees.last_n
9、ame%TYPE; v_sal employees.salary%TYPE;BEGIN OPEN emp_cursor; LOOP FETCH emp_cursor INTO v_empno, v_lname; EXIT WHEN emp_cursor%NOTFOUND; DBMS_OUTPUT.PUT_LINE(v_empno | | v_lname); END LOOP;END;獲取數(shù)據(jù)部門 10 只需一名員工. 下例執(zhí)行會有什么結果?DECLARE CURSOR emp_cursor IS SELECT employee_id, last_name FROM employees WHER
10、E department_id = 10; v_empno employees.employee_id%TYPE; v_lname employees.last_name%TYPE;BEGIN OPEN emp_cursor; LOOP FETCH emp_cursor INTO v_empno, v_lname; DBMS_OUTPUT.PUT_LINE(v_empno | | v_lname); END LOOP;END;封鎖游標CLOSE 語句封鎖游標, 釋放上下文區(qū)域和活動集. FETCH語句獲取處置完數(shù)據(jù)后,封鎖游標. 需求時可重新翻開游標.封鎖游標就象清空和封鎖盒子, 不再能從中取
11、物.封鎖游標指南游標只需被封鎖才干再次被翻開. 從封鎖的游標獲取數(shù)據(jù)會產(chǎn)生 INVALID_CURSOR 異常.再次翻開游標, 會重新執(zhí)行 SELECT 語句,上下文區(qū)域會被最新獲取的數(shù)據(jù)填充.顯式游標下例中用游標獲取亞洲國家的稱號和國慶節(jié)日期.顯式游標簡介此部分講解了:區(qū)分顯式游標和隱式游標在 PL/SQL 中為什么、何時運用顯式游標如何聲明、運用顯式游標聲明游標翻開游標獲取數(shù)據(jù)封鎖游標顯式游標屬性此部分將講解:運用 %ROWTYPE 定義記錄在 PL/SQL 中運用記錄變量處置活動集運用游標屬性 獲取顯式游標形狀顯式游標屬性運用顯式游標可以更靈敏的處置數(shù)據(jù). 本部分討論如何更有效的運用顯式
12、游標.游標志錄使他可以聲明一個變量就能獲取游標里的一切字段.游標屬性使他可以獲取關于顯示游標形狀的信息.游標和記錄下面游標每條記錄只取兩列 :假設要取6、7、8,甚至20列呢?游標和記錄下面游標獲取員工表的一切列:代碼非常繁瑣,是不是?游標和記錄下面兩段代碼有何不同?游標和記錄右側代碼運用 %ROWTYPE 基于游標聲明了一個記錄 record 構造. 記錄是 PL/SQL 中的復合數(shù)據(jù)類型.PL/SQL 記錄的構造記錄是復合數(shù)據(jù)類型, 由一組字段域組成, 每個域有本人的稱號和數(shù)據(jù)類型.可經(jīng)過 記錄名.域名 援用域.經(jīng)過%ROWTYPE 可根據(jù)游標聲明與游標有一樣域的記錄.cursor_nam
13、e%ROWTYPE的構造游標和 %ROWTYPE%ROWTYPE 便于處置活動集記錄 ,由于一個變量可獲取一行數(shù)據(jù).DECLARE CURSOR emp_cursor IS SELECT * FROM employees WHERE department_id = 30; v_emp_record emp_cursor%ROWTYPE;BEGIN OPEN emp_cursor; LOOP FETCH emp_cursor INTO v_emp_record; EXIT WHEN emp_cursor%NOTFOUND; DBMS_OUTPUT.PUT_LINE(v_emp_record.em
14、ployee_id | - | v_emp_record.last_name); END LOOP; CLOSE emp_cursor;END;游標和 %ROWTYPEDECLARE CURSOR emp_dept_cursor IS SELECT first_name, last_name,department_name FROM employees e, departments d WHERE e.department_id = d.department_id; v_emp_dept_record emp_dept_cursor%ROWTYPE;BEGIN OPEN emp_dept_cu
15、rsor; LOOP FETCH emp_dept_cursor INTO v_emp_dept_record; EXIT WHEN emp_dept_cursor%NOTFOUND; DBMS_OUTPUT.PUT_LINE(v_emp_dept_record.first_name | | v_emp_dept_record.last_name | |v_emp_dept_record.department_name); END LOOP; CLOSE emp_dept_cursor;END;顯式游標屬性同隱式游標一樣,顯式游標也有幾個屬性,可用于獲取其形狀信息. 將屬性名放在游標變量名后,
16、 可獲取游標的有用信息. 如 emp_dept_cursor%ISOPEN 可判別游標能否曾經(jīng)翻開%ISOPEN屬性只需游標翻開時才干獲取數(shù)據(jù). %ISOPEN 屬性可用于在獲取數(shù)據(jù)前檢測游標能否處于翻開形狀.%ISOPEN 前往游標形狀: TRUE 代表翻開, FALSE 代表封鎖.例如:%ROWCOUNT 和 %NOTFOUND屬性通常 %ROWCOUNT 和 %NOTFOUND 屬性用于在循環(huán)中作為循環(huán)終了條件.%ROWCOUNT屬性用于:處置確定數(shù)目的記錄在循環(huán)中對已獲取的記錄計數(shù)并決議何時終了循環(huán)%NOTFOUND屬性用于:確定查詢能否前往了符合要求的記錄決議何時終了循環(huán)%ROWCO
17、UNT 和 %NOTFOUND屬性下例演示了 %ROWCOUNT 和 %NOTFOUND 屬性用于循環(huán)的退出條件.DECLARE CURSOR emp_cursor IS SELECT employee_id, last_name FROM employees; v_emp_record emp_cursor%ROWTYPE;BEGIN OPEN emp_cursor; LOOP FETCH emp_cursor INTO v_emp_record; EXIT WHEN emp_cursor%ROWCOUNT 10 OR emp_cursor%NOTFOUND; DBMS_OUTPUT.PUT
18、_LINE(v_emp_record.employee_id | | v_emp_record.last_name); END LOOP; CLOSE emp_cursor;END;顯式游標屬性 和SQL 語句不能直接在SQL 語句中運用顯式游標屬性. 下面代碼會出現(xiàn)錯誤:顯式游標屬性 和SQL 語句可經(jīng)過變量將游標屬性值傳送給 SQL 語句CREATE TABLE emp_c(num NUMBER);DECLARE CURSOR emp_cursor IS SELECT last_name FROM employees; v_emp_record emp_cursor%ROWTYPE; v_
19、count NUMBER;BEGIN OPEN emp_cursor; LOOP FETCH emp_cursor INTO v_emp_record; EXIT WHEN emp_cursor%NOTFOUND; v_count := emp_cursor%ROWCOUNT; INSERT INTO emp_c VALUES(v_count); END LOOP; CLOSE emp_cursor; COMMIT;END;顯式游標屬性此部分講解了:運用 %ROWTYPE 定義記錄在 PL/SQL 中運用記錄變量處置活動集運用游標屬性 獲取顯式游標形狀游標 FOR 循環(huán)此部分將講解:游標 FO
20、R 循環(huán)的優(yōu)點在 PL/SQL 代碼中闡明游標,在 FOR 循環(huán)中運用運用帶子查詢的游標 FOR 循環(huán)游標 FOR 循環(huán)他曾經(jīng)學習了怎樣聲明和運用顯式游標, 運用 DECLARE, OPEN, 并在循環(huán)中運用FETCH, 測試 %NOTFOUND 屬性退出循環(huán), 最后運用 CLOSE 封鎖游標.假設能自動完成上述步驟該多好?運用游標 FOR 循環(huán)就可到達此目的.游標 FOR 循環(huán)游標 FOR 循環(huán)用于處置顯式游標中的數(shù)據(jù).游標 FOR 循環(huán)是一種運用游標的簡便方式。由于這時游標會自動翻開,每次循環(huán)自動獲取一條記錄,最后一條記錄獲取完成循環(huán)自動終了,游標自動封鎖. 語法:游標 FOR 循環(huán)語法中
21、:record_name 是自動聲明的記錄變量 (類型為cursor_name%ROWTYPE)cursor_name 是前面定義的游標名游標 FOR 循環(huán)v_emp_record 是自動聲明的記錄變量. 可經(jīng)過此變量運用獲取到的數(shù)據(jù). 不用聲明變量,也無需用 FETCH INTO 語句獲取數(shù)據(jù). 也不需求 OPEN 和 CLOSE 語句.游標 FOR 循環(huán)比較運用游標 FOR 循環(huán)編寫的代碼和以前的代碼. 兩段代碼功能與結果完全一樣.游標 FOR 循環(huán)DECLARE CURSOR dept_cursor IS SELECT department_id, department_name FRO
22、M departments ORDER BY department_id;BEGIN FOR v_dept_record IN dept_cursor LOOPDBMS_OUTPUT.PUT_LINE(v_dept_record.department_id | |v_dept_record.department_name); END LOOP;END;v_dept_record 自動聲明為 dept_cursor%ROWTYPE. 它包含幾個域?游標 FOR 循環(huán)指南不要聲明循環(huán)中的記錄變量, 由于它是自動聲明的.自動聲明的記錄變量作用域僅限于循環(huán)內(nèi)部, 不能在循環(huán)外運用此記錄變量.可經(jīng)過 r
23、ecord_name.column_name 來運用獲取到的數(shù)據(jù).測試游標屬性此時仍可運用游標屬性如 %ROWCOUNT. 本例中,循環(huán)處置了5條記錄后 退出. 游標依然被自動封鎖.游標 FOR 循環(huán)運用子查詢我們可以更進一步. 甚至可以不用聲明游標, 可直接在游標 FOR 循環(huán)中運用 SELECT 語句.這樣做的優(yōu)點是一切游標處置都用一個 FOR 語句完成. 這使以后的代碼修正簡便快捷.下面看一個例子.游標 FOR 循環(huán)運用子查詢游標 FOR 循環(huán)中運用的 SELECT 語句是子查詢, 所以該當放在括號中.游標 FOR 循環(huán)運用子查詢再次比較兩段邏輯一樣的代碼. 他喜歡哪種?尤其是假設他不喜
24、歡打字!游標 FOR 循環(huán)此部分講解了:游標 FOR 循環(huán)的優(yōu)點在 PL/SQL 代碼中闡明游標,在 FOR 循環(huán)中運用運用帶子查詢的游標 FOR 循環(huán)帶參數(shù)的游標此部分將講解:帶參數(shù)游標的優(yōu)點聲明和運用帶參數(shù)的游標帶參數(shù)的游標假設程序中聲明了一個游標用于處置指定部門的員工數(shù)據(jù),部門是用戶在程序運轉時選擇的. 我們該當如何聲明游標? 象下面這樣嗎?當然不是.有多個部門. 我們需求為每個部分聲明一個游標嗎, 每個游標運用不同的 WHERE 條件? 不用. 我們只需聲明一個帶參數(shù)的游標就可處置一切部門.帶參數(shù)的游標參數(shù)是一個變量,它的稱號用于 游標的定義中. 游標翻開時, 實踐參數(shù)值傳送給 Ora
25、cle 效力, 用于決議哪些記錄會被選入游標的活動集.這意味著他可以在同一塊中或不同塊中多次翻開游標, 每次運用不同參數(shù)獲取不同活動集.下面幻燈片的例子中,他可傳送恣意 region_id 給游標,然后游標前往對應地域的國家稱號.帶參數(shù)的游標定義帶參數(shù)的游標游標定義時聲明的每個參數(shù),在游標翻開時 OPEN語句中必需提供一個值. 參數(shù)數(shù)據(jù)類型和定義標量變量時一樣, 但不能給出大小size和精度. 參數(shù)名在游標的 SELECT語句的 WHERE 子句中運用.語法:定義帶參數(shù)的游標語法中:cursor_name 是前面定義的游標名parameter_name 是參數(shù)名datatype 是是參數(shù)的標量
26、數(shù)據(jù)類型select_statement 是不帶INTO子句的 SELECT 語句翻開帶參數(shù)的游標語法如下:帶參數(shù)的游標翻開游標時給參數(shù)傳送實踐的值. 因此他可以多次翻開同一游標,每次運用不同參數(shù)獲取不同的數(shù)據(jù)活動集. 下例中, 游標被多次翻開.帶參數(shù)的游標DECLARE v_deptid employees.department_id%TYPE; CURSOR empcur(p_deptid NUMBER) IS SELECT employee_id, salary FROM employees WHERE department_id = p_deptid; v_emp_rec empcur
27、%ROWTYPE;BEGIN SELECT MAX(department_id) INTO v_deptid FROM employees; OPEN empcur(v_deptid); LOOP FETCH empcur INTO v_emp_rec; EXIT WHEN empcur%NOTFOUND; DBMS_OUTPUT.PUT_LINE(v_emp_rec.employee_id | | v_emp_rec.salary); END LOOP; CLOSE empcur;END;帶參數(shù)的游標也可在游標 FOR 循環(huán)中運用帶參數(shù)的游標:帶多個參數(shù)的游標下例中游標有兩個參數(shù):帶多個參數(shù)
28、的游標下例中游標用于獲取一切收入超越$10000的 IT 程序員.DECLARE CURSOR emp_cursor3(p_job VARCHAR2, p_salary NUMBER) IS SELECT employee_id, last_name FROM employees WHERE job_id = p_job AND salary p_salary;BEGIN FOR v_emp_record IN emp_cursor3(IT_PROG, 10000) LOOP DBMS_OUTPUT.PUT_LINE(v_emp_record.employee_id | | v_emp_rec
29、ord.last_name); END LOOP;END;運用變量和參數(shù)的比較DECLARE v_dept_id departments.department_id%TYPE; CURSOR cur_dept IS SELECT * FROM employees WHERE department_id = v_dept_id;BEGIN FOR i IN 1 . 2 LOOP v_dept_id := i*10; DBMS_OUTPUT.PUT_LINE(-); FOR emp_rec IN cur_dept LOOP DBMS_OUTPUT.PUT_LINE(emp_rec.last_nam
30、e); END LOOP; END LOOP;END;運用變量和參數(shù)的比較DECLARE CURSOR cur_dept(p_dept_id departments.department_id%TYPE) IS SELECT * FROM employees WHERE department_id = p_dept_id;BEGIN FOR i IN 1 . 2 LOOP DBMS_OUTPUT.PUT_LINE(-); FOR emp_rec IN cur_dept(i * 10) LOOP DBMS_OUTPUT.PUT_LINE(emp_rec.last_name); END LOOP;
31、 END LOOP;END;結果一樣. 但運用參數(shù)更加便利.帶參數(shù)的游標此部分講解了:帶參數(shù)游標的優(yōu)點聲明和運用帶參數(shù)的游標運用游標更新數(shù)據(jù)本部分將講解:在更新數(shù)據(jù)前對數(shù)據(jù)加鎖了解對數(shù)據(jù)加鎖時 NOWAIT 選項的作用在 UPDATE 或 DELETE 語句中修正、刪除游標當前記錄運用游標更新數(shù)據(jù)假設多個用戶同時運用數(shù)據(jù)庫, 有能夠在他翻開游標獲取數(shù)據(jù)之后,另一個用戶修正了他所讀取的記錄.我們可以在翻開游標時鎖定記錄, 防止其他用戶修正這些游標讀取的記錄.假設我們本人也想修正這些記錄,這樣做就是非常重要的. 否那么,我們會根據(jù)他人修正前的結果來做出判別并修正數(shù)據(jù),此時實踐數(shù)據(jù)曾經(jīng)發(fā)生了變化。聲
32、明游標時運用 FOR UPDATE 子句當運用 FOR UPDATE 聲明游標時, 游標翻開時, 獲取的每條記錄都被鎖定. 當我們的游標處于翻開形狀時,其他用戶無法修正這些記錄. 這也允許我們本人運用 WHERE CURRENT OF 子句修正游標的當前記錄.但這并不會妨礙其他用戶查詢這些記錄.聲明游標時運用 FOR UPDATE 子句column_reference 是要鎖定記錄所在表的恣意一列的稱號.假設游標中 SELECT 語句只查詢一個表,加不加 of column_reference 沒有區(qū)別假設游標中 SELECT 語句查詢多個表如A和B,我們能夠只需求修正其中某個表A ,可經(jīng)過
33、of column_reference 指定表A中恣意列。這樣會只鎖定表A ,而不是表A和B 。其他用戶此時可以修正表B聲明游標時運用 FOR UPDATE 子句假設記錄曾經(jīng)被其他會話鎖定 :NOWAIT 立刻前往一個 Oracle 效力錯誤WAIT n 會先等待 n 秒, 假設其他會話曾經(jīng)釋放了鎖,那么勝利鎖定;假設其他會話依然鎖定這些數(shù)據(jù),那么前往一個 Oracle 效力錯誤.在 FOR UPDATE 子句中運用 NOWAITNOWAIT 關鍵字可選, 通知 Oracle 效力,假設游標懇求的恣意記錄已被其他會話加鎖 ,不要等待,立刻前往. 他的程序立刻得到控制權,可先完成其它任務再去重新
34、懇求鎖. 假設不加 NOWAIT 和 WAIT n , Oracle 效力會不斷等待,直到游標懇求的記錄可以加鎖并運用在 FOR UPDATE 子句中運用 NOWAIT假設游標懇求的恣意記錄已被其他會話加鎖 ,他運用了 NOWAIT, 那么翻開游標會產(chǎn)生一個錯誤.他可以過一會兒再嘗試翻開游標.他可以運用 WAIT n 替代 NOWAIT ,闡明等待 n 秒后再去檢查記錄上的鎖能否曾經(jīng)釋放. 假設 n 秒后,記錄依然被鎖定,那么前往錯誤.FOR UPDATE OF 列名假設游標基于結合查詢, 我們或許只想對其中一個表加鎖,而不鎖定另一個表. 我們需求指出待加鎖表的恣意一列.下例對員工表加鎖而不對
35、部門表加鎖:WHERE CURRENT OF 子句WHERE CURRENT OF 子句可以和 FOR UPDATE 子句結合運用, 用于援用顯式游標的當前行 (FETCH 語句最近一次獲取的記錄). WHERE CURRENT OF 子句用在UPDATE 或DELETE 語句中, 而 FOR UPDATE 子句 用在游標定義中.語法:cursor_name 是前面聲明的游標名 (游標聲明時必需運用 FOR UPDATE 子句.)WHERE CURRENT OF 子句可運用 WHERE CURRENT OF 修正或刪除游標當前記錄. 這樣就不再需求指定 WHERE 子句了. 此時需求在聲明游標時運用 FOR UPDATE 子句,這樣游標翻開時就會鎖定記錄WHERE CURRENT OF 子句運用游標修正或刪除游標當前記錄.聲明游標時運用 FOR UPDATE先對記錄加鎖.運用 WHERE CURRENT OF 子句援用游標當前行.例如:NOWAIT, FOR UPDATE, 和 WHERE CURRENT OF 子句下例中, 不需求在 FOR UPDATE 子句中加 OF 列名, 由于游標只查詢了一個表.例如FOR UPDATE OF salary 只對 MY_EMPLOYEES 表的記錄加鎖,
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經(jīng)權益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
- 6. 下載文件中如有侵權或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 學校教學成果表格
- 農(nóng)學作物種植技術測試題及答案解析
- 高效辦公數(shù)字化解決方案實踐指南
- 財務人員擔保協(xié)議書
- 水資源智能監(jiān)控與管理合同
- 金融科技反欺詐技術合作協(xié)議
- 基于人工智能的智能種植管理系統(tǒng)優(yōu)化實踐
- 月子中心月嫂服務合同
- 建筑裝修行業(yè)施工安全責任書
- 西方童話格林童話讀后感和兒童成長影響
- 智能割草機器人的概述外文翻譯
- 井下作業(yè)工:初級井下作業(yè)工考試答案二
- 學生心理健康一生一策檔案模板
- 《胸外按壓》課件
- 2024屆南通二模(又蘇北七市二模)數(shù)學試題
- 北師大版六年級下冊書法練習指導教案教學設計
- 江西省南昌市2024屆高三一模語文試題及答案解析
- 2023年小學音樂2022版新課程標準考試測試題及答案(共五套)
- 第一章村集體經(jīng)濟組織會計制度講解
- 湖北煙草公司招聘考試真題
- 2024年江蘇護理職業(yè)學院高職單招(英語/數(shù)學/語文)筆試歷年參考題庫含答案解析
評論
0/150
提交評論