PL/SQL迴圈控制語句
--PL/SQL迴圈控制語句 之 IF ... THEN ...
create or replace procedure RecoverRecord is
--定義遊標型別myCursor;
type myCursor is ref cursor;
--定義遊標型別的變數mycur1;
mycur1 myCursor;
--定義一般變數;
v_name emp.ename%type;
v_sal emp.sal%type;
--執行部分;
begin
--把遊標mycur1與一個select結合;
open mycur1 for select ename,sal from emp where deptno=&no;
--迴圈取出資料;
loop
fetch mycur1 into v_name,v_sal;
--判斷該員工的工資是否小於2500;小於2500的工資都加100;
if v_sal<2500 then
update emp set sal=sal+100 where ename=v_name;
dbms_output.put_line('員工姓名:'||v_name||' 工資:'||v_sal||' 由於該員工的工資低於2500,現在再加100,其工資為'||(v_sal+100));
else
dbms_output.put_line('員工姓名:'||v_name||' 工資:'||v_sal);
end if;
--判斷遊標mucur1是否為空;
exit when mycur1%notfound;
end loop;
--關閉遊標;
close mycur1;
end;
-- 測試loop迴圈與while迴圈的區別;
create or replace procedure testLoop is
v_num number:=1;
begin
loop
v_num:=v_num+1; --loop迴圈內的語句有執行順序;
exit when v_num>0; --若先寫Exit語句,則先判斷,否則先做Exit語句之前的語句,後判斷;
end loop;
dbms_output.put_line(v_num);
end;
--測試呼叫有返回值的過程;
--引數中的 in 表示該引數是一個輸入值引數;
--引數中的 out 表示該引數是一個輸出值引數;
create or replace procedure getName(pnum in number,pname out varchar2,psal out number)
is
begin
select ename,sal into pname,psal from emp where empno=pnum;
end;
--返回結果集的過程;
--1.建立一個包,在該包中定義一個遊標型別;
create or replace package mypackage as
type returncursor is ref cursor;
end mypackage;
--2.建立過程,要求返回有表型別;
create or replace procedure mycur(pnum number,pcursor out mypackage.returncursor)
is
begin
open pcursor for select * from emp where deptno=pnum;
end;
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/24465008/viewspace-692328/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- PLSQL Language Referenc-PL/SQL控制語句-迴圈語句-FOR迴圈SQL
- PLSQL Language Referenc-PL/SQL控制語句-迴圈語句-WHILE迴圈SQLWhile
- PLSQL Language Referenc-PL/SQL控制語句-迴圈語句-基本迴圈(EXIT語句)SQL
- PLSQL Language Referenc-PL/SQL控制語句-迴圈語句-FOR迴圈-FOR迴圈中的索引SQL索引
- PLSQL Language Referenc-PL/SQL控制語句-迴圈語句-FOR迴圈-下限和上限SQL
- PLSQL Language Referenc-PL/SQL控制語句-迴圈語句-CONTINUESQL
- PLSQL Language Referenc-PL/SQL控制語句-迴圈語句-EXIT WHENSQL
- PLSQL Language Referenc-PL/SQL控制語句-迴圈語句-CONTINUE WHENSQL
- 6.4. PL/SQL語法——6.4.5. 迴圈語句SQL
- PL/SQL 條件控制語句SQL
- PL/SQL 迴圈SQL
- 流程控制、 迴圈語句
- swift控制流——迴圈語句Swift
- linux 迴圈控制語句Linux
- JavaScript 流程控制語句詳解:if語句、switch語句、while迴圈、for迴圈等JavaScriptWhile
- php中有哪些迴圈控制語句PHP
- PLSQL Language Referenc-PL/SQL控制語句-順序控制語句-NULLSQLNull
- Oracle PL/SQL迴圈示例OracleSQL
- Oracle 迴圈呼叫動態SQL語句OracleSQL
- Matlab的if語句switch語句for迴圈while迴圈語句練習MatlabWhile
- GaussDB SQL基礎語法示例-迴圈語句SQL
- 【分支流程控制語句、迴圈流程控制語句】的學習
- pl/sql for loop迴圈的使用SQLOOP
- 【PL/SQL】遊標提取迴圈SQL
- TypeScript 迴圈語句TypeScript
- JavaScript for 迴圈語句JavaScript
- MySQL迴圈語句MySql
- Oracle迴圈語句Oracle
- 2-4 Java流程控制——迴圈語句Java
- C#教程第四課:迴圈控制語句C#
- PLSQL Language Referenc-PL/SQL控制語句-條件選擇語句-IF THEN ELSeIFSQL
- PLSQL Language Referenc-PL/SQL控制語句-條件選擇語句-IF THEN ELSESQL
- PLSQL Language Referenc-4PL/SQL控制語句-條件選擇語句-IF THENSQL
- PL/SQL與DDL語句SQL
- JavaScript跳出for迴圈語句JavaScript
- java 迴圈語句(轉)Java
- PL/SQL 動態sql語句例SQL
- 使用遊標迴圈進行SQL更新插入的SQL語句SQL