freepeople性欧美熟妇, 色戒完整版无删减158分钟hd, 无码精品国产vα在线观看DVD, 丰满少妇伦精品无码专区在线观看,艾栗栗与纹身男宾馆3p50分钟,国产AV片在线观看,黑人与美女高潮,18岁女RAPPERDISSSUBS,国产手机在机看影片

正文內(nèi)容

plsql_oracle9i編程講義-資料下載頁

2025-08-12 12:54本頁面

【導(dǎo)讀】§什么是PL/SQL?

  

【正文】 END。 167。 注釋 在 PL/SQL里,可以使用兩種符號來寫注釋,即: ? 使用雙 ?? ( 減號 ) 加注釋 PL/SQL允許用 – 來寫注釋,它的作用范圍是只能在一行有效。如: V_Sal NUMBER(12,2)。 工資變量。 ? 使用 /* */ 來加一行或多行注釋,如: /***********************************************/ 17 17 /* 文件名: */ /***********************************************/ 提示:被解釋存放在數(shù)據(jù)庫中的 PL/SQL 程序,一般系統(tǒng)自動將程序頭部的注釋去掉。只有在 PROCEDURE 之后的注釋才被保留;另外程序中的空行也自動被去掉。 167。 簡單例子 167。 簡單數(shù)據(jù)插入例子 例 11: /* 本例子僅是一個簡單的插入,不是實(shí)際應(yīng)用。 */ DECLARE v_ename VARCHAR2(20) := ?Bill‘。 v_sal NUMBER(7,2) :=。 v_deptno NUMBER(2) := 10。 v_empno NUMBER(4) := 8888。 BEGIN INSERT INTO emp ( empno, ename, JOB, sal, deptno , hiredate ) VALUES ( v_empno, v_ename, ?Manager‘, v_sal, v_deptno, TO_DATE(‘‘,‘‘) )。 COMMIT。 END。 167。 簡單數(shù)據(jù)刪除例子 例 12: /* 本例子僅 是一個簡單的刪除例子,不是實(shí)際應(yīng)用。 */ DECLARE v_empno number(4) := 8888。 BEGIN DELETE FROM emp WHERE empno=v_empno。 COMMIT。 END。 18 18 第三章 PL/SQL 流程控制語句 介紹 PL/SQL 的流程控制語句 , 包括如下三類 : ? 控制語句 : IF 語句 ? 循環(huán)語句 : LOOP 語句 , EXIT 語句 ? 順序語句 : GOTO 語句 , NULL 語句 167。 條件語句 IF 布爾表達(dá)式 THEN PL/SQL 和 SQL 語句 END IF。 IF 布爾表達(dá)式 THEN PL/SQL 和 SQL 語句 ELSE 其它語句 END IF。 IF 布爾表達(dá)式 THEN PL/SQL 和 SQL 語句 ELSIF 其它布爾表達(dá)式 THEN 其它語句 ELSIF 其它布爾表達(dá)式 THEN 其它語句 ELSE 其它語句 END IF。 提示 : ELSIF 不能寫成 ELSEIF 例 1: DECLARE v_empno %TYPE :=amp。empno。 V_salary %TYPE。 V_ment VARCHAR2(35)。 BEGIN SELECT sal INTO v_salary FROM emp WHERE empno=v_empno。 IF v_salary1500 THEN V_ment:= ?Fairly less‘。 ELSIF v_salary 3000 THEN V_ment:= ?A little more‘。 19 19 ELSE V_ment:= ?Lots of salary‘。 END IF。 (V_ment)。 END。 167。 CASE 表達(dá)式 CASE selector WHEN expression1 THEN result1 WHEN expression2 THEN result2 WHEN expressionN THEN resultN [ ELSE resultN+1] END。 例 2: DECLARE V_grade char(1) := UPPER(?amp。p_grade‘)。 V_appraisal VARCHAR2(20)。 BEGIN V_appraisal := CASE v_grade WHEN ?A‘ THEN ?Excellent‘ WHEN ?B‘ THEN ?Very Good‘ WHEN ?C‘ THEN ?Good‘ ELSE ?No such grade‘ END。 (?Grade:?||v_grade||‘ Appraisal: ?|| v_appraisal)。 END。 167。 循環(huán) 1. 簡單循環(huán) LOOP 要執(zhí)行的語句 。 EXIT WHEN 條件語句 /*條件滿足,退出循環(huán)語句 */ END LOOP。 20 20 例 3. DECLARE int NUMBER(2) :=0。 BEGIN LOOP int := int + 1。 (39。int 的當(dāng)前值為 :39。||int)。 EXIT WHEN int =10。 END LOOP。 END。 2. WHILE 循環(huán) WHILE 布爾表達(dá)式 LOOP 要執(zhí)行的語句 。 END LOOP。 例 4. DECLARE x NUMBER :=1。 BEGIN WHILE x=10 LOOP (39。X 的當(dāng)前值為 :39。||x)。 x:= x+1。 END LOOP。 END。 3. 數(shù)字式循環(huán) FOR 循環(huán)計(jì)數(shù)器 IN [ REVERSE ] 下限 .. 上限 LOOP 要執(zhí)行的語句 。 END LOOP。 每循環(huán)一次,循環(huán)變量自動加 1;使用關(guān)鍵字 REVERSE,循環(huán)變量自動減 1。跟在 IN REVERSE 后面的數(shù)字必須是從小到大的順序, 而且必須是 整數(shù) ,不能是變量或表達(dá)式??梢允褂?EXIT 退出循環(huán)。 例 5. BEGIN FOR int in 1..10 LOOP (39。int 的當(dāng)前值為 : 39。||int)。 END LOOP。 END。 例 6. 21 21 CREATE TABLE temp_table(num_col NUMBER)。 DECLARE V_counter NUMBER := 10。 BEGIN INSERT INTO temp_table(num_col) VALUES (v_counter )。 FOR v_counter IN 20 .. 25 LOOP INSERT INTO temp_table (num_col ) VALUES ( v_counter )。 END LOOP。 INSERT INTO temp_table(num_col) VALUES (v_counter )。 FOR v_counter IN REVERSE 20 .. 25 LOOP INSERT INTO temp_table (num_col ) VALUES ( v_counter )。 END LOOP。 END 。 DROP TABLE temp_table。 167。 標(biāo)號和 GOTO PL/SQL 中 GOTO 語句是無條件跳轉(zhuǎn)到指定的標(biāo)號去的意思。語法如下: GOTO label。 . . . . . . label /*標(biāo)號是用 括起來的標(biāo)識符 */ 例 7: DECLARE V_counter NUMBER := 1。 BEGIN LOOP (39。V_counter 的當(dāng)前值為 :39。||V_counter)。 V_counter := v_counter + 1。 IF v_counter 10 THEN GOTO l_ENDofLOOP。 END IF。 END LOOP。 l_ENDofLOOP (39。V_counter 的當(dāng)前值為 :39。||V_counter)。 END 。 167。 NULL 語句 在 PL/SQL 程序中,可以用 null 語句來說明 ―不用做任何事情 ‖的意思,相當(dāng)于一個占位符,可以使某些語句變得有意義,提高程序的可讀性。如: 22 22 DECLARE . . . BEGIN … IF v_num IS NULL THEN GOTO print1。 END IF。 … print1 NULL。 不需要處理任何數(shù)據(jù)。 END。 23 23 第四章 游標(biāo)的使用 在 PL/SQL 程序中,對于處理多行記錄的事務(wù)經(jīng)常使用游標(biāo)來實(shí)現(xiàn)。 167。 游標(biāo)概念 為了處理 SQL 語句, ORACLE 必須分配一片叫上下文 ( context area )的區(qū)域來處理所必需的信息,其中包括要處理的行的數(shù)目,一個指向語句被分析以后的表示形式的指針以及查詢的活動集 (active set)。 游標(biāo)是一個指向上下文的句柄 ( handle)或指針。通過游標(biāo), PL/SQL可以控制上下文區(qū)和處理語句時(shí)上下文區(qū)會發(fā)生些什么事情。 對于不同的 SQL 語句,游標(biāo)的使用情況不同: SQL 語句 游標(biāo) 非查詢語句 隱式的 結(jié)果是單行的查詢語句 隱式的或顯示的 結(jié)果是多行的查詢語句 顯示的 167。 處理顯式游標(biāo) 1. 顯式游標(biāo)處理 顯式游標(biāo)處理需四個 PL/SQL 步驟 : ? 定義游標(biāo): 就是定義一個游標(biāo)名,以及與其相對應(yīng)的 SELECT 語句。 格式: CURSOR cursor_name[(parameter[, parameter]…)] IS select_statement。 游標(biāo)參數(shù)只能為輸入?yún)?shù),其格式為: parameter_name [IN] datatype [{:= | DEFAULT} expression] 在指定數(shù)據(jù)類型時(shí),不能使用長度約束。如 NUMBER(4)、 CHAR(10) 等都是錯誤的。 ? 打開游標(biāo): 就是執(zhí)行游標(biāo)所對應(yīng)的 SELECT 語句,將其查詢結(jié)果放入工作區(qū),并且指針指向工作區(qū)的首部,標(biāo)識游標(biāo)結(jié)果集合。如果游標(biāo)查詢語句中帶有 FOR UPDATE選項(xiàng), OPEN 語句還將鎖定 數(shù)據(jù)庫表中游標(biāo)結(jié)果集合對應(yīng)的數(shù)據(jù)行。 格式: OPEN cursor_name[([parameter =] value[, [parameter =] value]…)]。 在向游標(biāo)傳遞參數(shù)時(shí),可以使用與函數(shù)參數(shù)相同的傳值方法,即位置表示法和名稱表示 法。 PL/SQL 程序不能用 OPEN 語句重復(fù)打開一個游標(biāo)。 ? 提取游標(biāo)數(shù)據(jù): 就是檢索結(jié)果集合中的數(shù)據(jù)行,放入指定的輸出變量中。 格式: FETCH cursor_name INTO {variable_list | record_variable }。 ? 對該記錄進(jìn)行處理; ? 繼續(xù)處理,直到活動集合中沒有記錄; ? 關(guān)閉游標(biāo): 當(dāng)提取和處理完游標(biāo)結(jié)果集合數(shù)據(jù)后,應(yīng)及時(shí)關(guān)閉游標(biāo),以釋放該游標(biāo)所占用的系統(tǒng)資源,并使該游標(biāo)的工作區(qū)變成無效,不能再使用 FETCH 語句取其中數(shù)據(jù)。關(guān)閉后的游標(biāo)可以使用 OPEN 語句重新打開。 格式: CLOSE cursor_name。 24 24 注:定義的游標(biāo)不能有 INTO 子句。 例 1. 查詢前 10 名員工的信息。 DECLARE CURSOR c_cursor IS SELECT ename, sal FROM emp WHERE rownum11。 v_ename %TYPE。 v_sal %TYPE。 BEGIN OPEN c_cursor。 FETCH c_cursor INTO v_ename, v_sal。 WHILE c_cursor %FOUND LOOP (v_ename||‘?||to_char(v_sal) )。 FETCH c_cursor INTO v_ename, v_sal。 END LOOP。 CLOSE c_cursor。 END。 例 2. 游標(biāo)參數(shù)的傳遞方法。 DECLARE DeptRec dept%ROWTYPE。 Dept_name %TYPE。 Dept_loc %TYPE。 CURSOR c1 IS SELECT dname, loc FROM dept WHERE deptno
點(diǎn)擊復(fù)制文檔內(nèi)容
試題試卷相關(guān)推薦
文庫吧 www.dybbs8.com
備案圖鄂ICP備17016276號-1