1.if循环做判断

 SET SERVEROUTPUT ON
accept num prompt 'qinshuu';
DECLARE
pnum NUMBER :=& num ;
BEGIN
IF pnum = 0 THEN
SYS.DBMS_OUTPUT.PUT_LINE ('') ;
ELSIF pnum = 1 THEN
dbms_output.put_line ('') ;
ELSE
DBMS_OUTPUT.PUT_LINE ('') ;
END
IF ;
END ;
/

2.引用变量

 SET SERVEROUTPUT ON
DECLARE
pename emp.ename%type;
psal emp.sal%type;
BEGIN
SELECT ename,sal into pename,psal FROM emp where empno= 7902;
dbms_output.put_line(pename ||'hahah'||psal);
end;
/

3.基本变量 char类型会补全

 set SERVEROUTPUT ON
DECLARE
var_char1 char;
var_char2 CHAR(20);
BEGIN
var_char1 :='a';
var_char2 :='abc';
DBMS_OUTPUT.PUT_LINE('var_char1 is' ||var_char1||'*');
DBMS_OUTPUT.PUT_LINE('var_char2 is' ||var_char2||'*');
end;
/
/*
PL/SQL 过程已成功完成。
var_char1 isa*
var_char2 isabc *
*/

4.while循环10次

 SET SERVEROUTPUT ON
DECLARE pnum NUMBER := 1 ;
BEGIN
while pnum <= 10
loop dbms_output.put_line (pnum) ;
pnum := pnum + 1 ;
END loop ;
END ;
/

5.loop循环

 SET SERVEROUTPUT ON
DECLARE pnum NUMBER := 1 ;
BEGIN
loop exit
WHEN pnum > 10 ;
dbms_output.put_line (pnum) ;
pnum := pnum + 1 ;
END loop ;
END ;
/

6.for循环

 SET SERVEROUTPUT ON
DECLARE pnum NUMBER := 1 ;
BEGIN
FOR pnum IN 1..10
loop DBMS_OUTPUT.PUT_LINE (pnum) ;
END loop ;
END ;
/

7.游标打印所有人薪水

 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 ; exit
WHEN cemp % notfound ;
dbms_output.put_line (pename || 'xin shui shi' || psal) ;
END loop ; CLOSE cemp ;
END ;
/

8.游标所有人涨薪水

 set SERVEROUTPUT ON
DECLARE
CURSOR cemp is select empno,job FROM emp;
pempno EMP.EMPNO%type;
pjob emp.job%type;
begin
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;
else update emp set sal = sal+400 where empno = pempno;
end if;
end loop;
close cemp;
commit;
dbms_output.put_line('wanc');
end;
/

9.游标自定义选项

SET SERVEROUTPUT ON
DECLARE CURSOR cemp (dno NUMBER) IS SELECT
ename
FROM
emp
WHERE
deptno = dno ; pename emp.ename % TYPE ;
BEGIN
OPEN cemp (20) ; loop FETCH cemp INTO pename ; exit
WHEN cemp % notfound ; dbms_output.put_line (pename) ;
END loop ; CLOSE cemp ;
END ;
/

备注:实验环境为orcle SQL Developer;

sys登录为系统自带scott解锁并且授予SCOTT用户开发权限

 ALTER USER scott IDENTIFIED BY xxxxxx ACCOUNT UNLOCK;
GRANT RESOURCE TO scott;

PL/SQL循环的更多相关文章

  1. PL/SQL 循环语句

    1.基本 LOOP 循环语句 语法: LOOP 语句序列; END LOOP; 其中,语句序列中需要一个EXIT语句或一个EXIT WHEN语句来中断循环. 实例: DECLARE x ) :; BE ...

  2. Oracle语句块PL/SQL循环判断

    - --pl/sql Procedural Language /sql --被数据库编译保存,由用户调用 --程序块 /* 语法 Declare – 声明变量 --声明变量 Age int; //没有 ...

  3. 五、PL/SQL循环、游标、函数和过程

    --PL/SQL基础知识学习 --一.PL/SQL语句块,基础语法格式 DECLARE --变量声明列表 info varchar(25); --变量声明 stu_unm integer := 15; ...

  4. PL/SQL 循环

    ----PL/SQL基本循环语句 LOOP DECLARE x ; BEGIN LOOP dbms_output.put_line(x); x :; THEN exit; END IF; END LO ...

  5. PL/SQL 循环结构

    (1)LOOP...EXIT...END语句示例: control_var:; LOOP then EXIT; END IF; control_var:; END LOOP; 上述,初始化contro ...

  6. pl/sql实现打印九九乘法表

    学习PL/SQL循环的时候写的,记录一下. declare v_number1 ); -- 外层循环变量 v_number2 ); -- 内层循环变量 begin .. -- 开始外层循环 loop ...

  7. Oracle PL/SQL中的循环处理(sql for循环)

    今天来说下Oracle中的循环迭代处理,因为从自己的博客统计中看到,不少网友都搜索了关键字"SQL FOR循环",所以打算在这里说下个人的理解. PL/SQL也和我们常用的编程语言 ...

  8. Oracle PL/SQL之LOOP循环控制语句

    在PL/SQL中可以使用LOOP语句对数据进行循环处理,利用该语句可以循环执行指定的语句序列.常用的LOOP循环语句包含3种形式:基本的LOOP.WHILE...LOOP和FOR...LOOP. LO ...

  9. Oracle笔记 八、PL/SQL跳转/判断/循环语句块

    --goto跳转语句 --在goto 后,跳转到相应的语句,然后执行该语句和后面所有语句 begin dbms_output.put_line('goto开始了'); goto c; --不被执行 d ...

随机推荐

  1. php中抽象类与接口的概念以及区别

    php里面的接口类,抽象类到底有什么用呢? 刚接触php的时候,觉得这个东西没什么用,其实这些东西还是有一定的作用的,下面我就简单的说说. 1.php 接口类:interface 其实他们的作用很简单 ...

  2. java文档注释--javadoc的用法

    1.前言 Java中有三种注释方式.前两种分别是 // 和 /* */,主要用于代码的注释,以此来方便代码的可读性.第三种被称作说明注释或文档注释,它以 /** 开始,以 */结束,文档注释允许你在程 ...

  3. sea.js模块化编程

    * 为什么要模块化? 解决文件依赖 解决命名冲突 ; var var2 = 2; function fn1(){ } function fn2(){ } return { fn1: fn1, fn2: ...

  4. Sharepoint2013 AD组用户不同步

    背景: SP2013列表库使用AD安全组授权访问,向AD安全组添加一个用户A,在Sharepoint AD同步(增量和完全)后,用户A仍然无法访问列表库:原因: 参考:安全令牌上的缓存  SP2013 ...

  5. android图片验证码--自绘控件

    自绘控件的内容都是自己绘制出来的 大致流程如下: 1.定义一个类继承view 使用TypedArray初始化属性集合 在view的构造方法中 有一个AttributeSet的参数 很明显是用来保存控件 ...

  6. iOS从零开始学习直播之音频3.歌曲切换

      上周迟到了,周末去参加OSC源创会了,还是有点启发的.但这不是重点,重点是 上一篇我只是实现了一首歌曲的在线播放,这肯定是不够的.这一篇博客主要是实现了多首歌曲的顺序播放以及上一首和下一首切换. ...

  7. armv7 armv7s arm64

    arm处理器以其低功耗和小尺寸而闻名,几乎所有的手机处理器都是基于arm,在嵌入式系统中应用非常广泛.   armv6, armv7, armv7s, arm64指的是arm处理器的指令集. i386 ...

  8. 启用SQLite的Data Provider 运行WECOMPANYSITE时遇到ERROR CREATING CONTEXT 'SPRING.ROOT': ERROR THROWN BY A DEPENDENCY OF OBJECT 'SYSTEM.DATA.SQLITE'

    从网上下载的源码WeCompanySite,运行时报错 Error creating context 'spring.root': Error thrown by a dependency of ob ...

  9. codevs 1490 【CTSC2008】 网络管理

    题目链接:网络管理 好久没写这种类型的题了--手都生了-- 一句话题意:树上带修改的区间\(k\)大数.这题面怎么有点眼熟 显然树上的题目我们可以先在序列上考虑一下.区间带修改的区间\(k\)大数有两 ...

  10. Subsets II

    Given a collection of integers that might contain duplicates, nums, return all possible subsets. Not ...