PL/SQL之流控制语句
1、选择控制语句
--语法1--
IF 条件 THEN
语句;
END IF; DECLARE
v_Salary NUMBER(8,2);
BEGIN
SELECT salary
INTO v_Salary
FROM auths
WHERE name='张三';
IF v_Salary IS NOT NULL THEN
DBMS_OUTPUT.PUT_LINE(v_Salary);
END IF;
END;
--语法2--
IF 条件 THEN
语句1;
ELSE
语句2;
END IF; DECLARE
v_Salary NUMBER(8,2);
BEGIN
SELECT salary
INTO v_Salary
FROM auths
WHERE name='张三';
IF v_Salary IS NOT NULL THEN
DBMS_OUTPUT.PUT_LINE(v_Salary);
ELSE
DBMS_OUTPUT.PUT_LINE('工资未定');
END IF;
END;
--语法3--
IF 条件1 THEN
语句1;
ELSIF 条件2 THEN
语句2;
[ELSE
语句3;]
END IF; DECLARE
v_Salary NUMBER(8,2);
v_Comment VARCHAR2(40);
BEGIN
SELECT salary
INTO v_Salary
FROM auths
WHERE name='张三';
IF v_Salary = 120 THEN
v_Comment:='最低工资';
ELSIF(v_Salary > 120) AND (v_Salary <= 300) THEN
v_Comment:='低工资';
ELSE
v_Comment:='普通工资';
END IF;
END;
2、循环控制语句
--语法1--
LOOP
语句;
END LOOP; DECLARE
v_name VARCHAR2(10);
v_num INTEGER:=1;
BEGIN
LOOP
SELECT name
INTO v_name
FROM auths
WHERE author_code='A0000'||TO_CHAR(v_num);
v_num:=v_num+1;
IF v_num>=10 THEN
EXIT;
END IF;
END LOOP;
END; ||为oracle中的字符串连接符;
EXIT语句可在LOOP语句中出现多次,但不可以在LOOP语句外使用; DECLARE
v_name VARCHAR2(10);
v_num INTEGER:=1;
BEGIN
LOOP
SELECT name
INTO v_name
FROM auths
WHERE author_code='A0000'||TO_CHAR(v_num);
v_num:=v_num+1;
EXIT WHEN v_num>=10;
END LOOP;
END;
--语法2--
<<标号名>>
LOOP
语句;
END LOOP[标号名]; 标号指用"<<"和">>"括起来的标识符,必须放在LOOP语句的开始,结尾可选放。
在嵌套的LOOP循环中,带标号的循环可以提高程序的可读性。同时,使用EXIT语句不仅可以终止当前的循环,还可以终止任意带标号的循环语句。 DECLARE
...
BEGIN
<<first_loop>>
LOOP
LOOP
...
EXIT first_loop WHEN ...;
END LOOP;
END LOOP first_loop;
END;
--语法3--
WHILE 条件 LOOP
语句;
END LOOP; DECLARE
v_name VARCHAR2(10);
v_num INTEGER:=1;
BEGIN
WHILE v_num<10 LOOP
SELECT name
INTO v_name
FROM auths
WHERE author_code='A0000'||TO_CHAR(v_num);
v_num:=v_num+1;
END LOOP;
END;
--语法4--
FOR 循环变量 IN [REVERSE] 初始值..结束值 LOOP
语句;
END LOOP; DECLARE
v_name VARCHAR2(10);
BEGIN
FOR v_num IN 1..9 LOOP
SELECT name
INTO v_name
FROM auths
WHERE author_code='A0000'||TO_CHAR(v_num);
DBMS_OUTPUT.PUT_LINE(v_name);
END LOOP;
END; DECLARE
v_name VARCHAR2(10);
v_count NUMBER;
BEGIN
SELECT COUNT(name)
INTO v_count
FROM auths
FOR v_num IN 1..v_count LOOP
SELECT name
INTO v_name
FROM auths
WHERE author_code='A0000'||TO_CHAR(v_num);
DBMS_OUTPUT.PUT_LINE(v_name);
END LOOP;
END; 可以引用循环变量;
循环变量的初始值和结束值可以是数据、变量或表达式,但值必须是整数;
允许在执行时动态的指定循环变量的初始值和结束值;
循环变量仅在循环语句中有效,当退出循环时,循环变量无效;
因为循环变量被隐式地定义为局部变量,所有任何同名的全局变量都将被改变量覆盖,如果要引用全局变量,则必须使用标号和点好;
如果在嵌套的循环语句中,内层和外层的循环变量名相同,这时,要在内部循环中使用外部循环的循环变量,必须使用标号和点好;
3、顺序控制语句
GOTO语句是非结构化语句;
NULL语句能够使条件语句的意义更加清晰,并且能够提高程序的可读性;
PL/SQL之流控制语句的更多相关文章
- Oracle中PL/SQL的循环语句
在PL/SQL中可以使用LOOP语句对数据进行循环处理,利用该语句可以循环执行指定的语句序列.常用的LOOP循环语句包含3种形式:基本的LOOP.WHILE...LOOP和FOR...LOOP. LO ...
- oracle PL/SQL管理命令语句
一.ORACLE的启动和关闭 1.在单机环境下 要想启动或关闭ORACLE系统必须首先切换到ORACLE用户,如下 su - oracle a.启动ORACLE系统 oracle>svrmgrl ...
- PL/SQL编程重点语句输出整理
create or replace procedure pr_mytest is v_test number() :=; v_char varchar2():='数据库'; c_changl cons ...
- pl/sql中if语句的使用
- PL/SQL批处理语句(BULK COLLECT子句和FORALL语句)
Oracle为PL/SQL中的SQL相关功能提供了FORALL语句和BULK COLLECT子句,显著的增强了SQL相关功能.这两个语句一起被称作PL/SQL的批处理语句.Oracle为什么要提供这两 ...
- Oracle之PL/SQL学习笔记
自己在学习Oracle是做的笔记及实验代码记录,内容挺全的,也挺详细,发篇博文分享给需要的朋友,共有1w多字的学习笔记吧.是以前做的,一直在压箱底,今天拿出来整理了一下,给大家分享,有不足之处还望大家 ...
- PL/SQL流程控制语句
PL/SQL流程控制语句介绍PL/SQL的流程控制语句, 包括如下三类:控制语句: IF 语句循环语句: LOOP语句, EXIT语句顺序语句: GOTO语句, NULL语句①if语句 IF < ...
- Oracle PL/SQL入门语法点
PL_SQL:带有分支和循环,面向过程匿名块:declare(可选,声明各种变量和游标的地方)begin(必要的,从此开始执行)exception(抓取到异常后执行的)end;[sql] view p ...
- ORACLE PL/SQL编程详解
ORACLE PL/SQL编程详解 编程详解 SQL语言只是访问.操作数据库的语言,并不是一种具有流程控制的程序设计语言,而只有程序设计语言才能用于应用软件的开发.PL /SQL是一种高级数据库程序设 ...
随机推荐
- 5个Shell脚本编程入门练习例子
例子一:绘制特殊图形 复制代码代码如下: #!/bin/bash MAX_NO=0 echo -n "Enter Number between (5 to 9) : " read ...
- python index()函数
python内置index()函数 index() 方法检测字符串中是否包含子字符串 str ,如果指定 beg(开始) 和 end(结束) 范围,则检查是否包含在指定范围内,该方法与 python ...
- gulp 图片、样式、js、实时刷新等压缩gulpfile.js文件各个模块
1.压缩tinypng图片 gulp-tinypng-nokey,但不压缩gif格式(另外一个gulp-imagemin压缩率不高,可以压缩gif格式) // 获取 gulp var gulp = ...
- jQuery滚动到特定位置时出现
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8&quo ...
- “全栈2019”Java第八十四章:接口中嵌套接口详解
难度 初级 学习时间 10分钟 适合人群 零基础 开发语言 Java 开发环境 JDK v11 IntelliJ IDEA v2018.3 文章原文链接 "全栈2019"Java第 ...
- form在模版中的渲 染方式
链接:https://www.jianshu.com/p/46b2aa2d5a23 form.as_p 渲染表单为一系列的p标签,每个p标签包含一个字段: <p> <label fo ...
- php运行环境学习
web服务器,负责响应客户端请求.对于静态页面请求,会立即返回相应页面给客户端:如果是动态页面,web服务器会根据 httpd.conf中的AddType配置,提交给合适的动态脚本解析程序预处理,然后 ...
- [Swift]字符串(String类、NSString类)常用操作
NS是Cocoa类对象类型的前缀,来源于乔布斯建立的另一家公司--NeXTNSString的使用方法,和Swift语言中的String有很多相似之处. 1.字符串的定义String类 var str1 ...
- xshell连接centos虚拟机的几点注意
我家用电脑使用联通的宽带,使用virtualbox装了centos6,连接方式使用NAT网络,还有一个是网络地址转换(NAT),不清楚区别是什么,使用xshell连接 当使用cd /etc/sysco ...
- python学习笔记1.3
温度转换实例 #TempConvert.pyTempStr = input("请输入带有符号的温度值: ")if TempStr[-1] in ['F', 'f']:C = (ev ...