一、流程控制

  1.条件判断

  语法:

IF <布尔表达式> THEN
PL/SQL 和 SQL语句
END IF;
IF <布尔表达式> THEN
PL/SQL 和 SQL语句
ELSE
其它语句
END IF;
IF <布尔表达式> THEN
PL/SQL 和 SQL语句
ELSIF < 其它布尔表达式> THEN
其它语句
ELSIF < 其它布尔表达式> THEN
其它语句
ELSE
其它语句
END IF;

  // 请注意ELSIF而不是ELSEIF!

  示例:

DECLARE
V_sal employees.salary%type;
BEGIN
SELECT salary INTO V_sal
FROM employees
WHERE employee_id = 100;
IF V_sal > 10000
THEN dbms_output.put_line('工资大于1万');
ELSIF V_sal > 5000
THEN dbms_output.put_line('工资大于5千');
ELSE
dbms_output.put_line('工资小于5千');
END IF;
END;

  CASE表达式:

CASE selector
WHEN expression1 THEN result1
WHEN expression2 THEN result2
WHEN expressionN THEN resultN
[ ELSE resultN+1]
END;

  2.循环

    基本循环

LOOP
Sequence of statements;
END LOOP;

 也可以使用EXIT WHEN进行退出:

LOOP
stmt;
exit WHEN x > 50;
END LOOP;

  示例:

--包含初始化条件、循环体、循环条件、迭代条件
DECLARE
v_i NUMBER(3) := 1;
BEGIN
LOOP
dbms_output.put_line(v_i);
-- v_i = v_i + 1;
EXIT WHEN v_i >= 10;
v_i := v_i + 1;
END LOOP;
END;

    WHILE循环

WHILE condition LOOP
sequence_of_statements
END LOOP;

  示例:

--包含初始化条件、循环体、循环条件、迭代条件
DECLARE
v_i NUMBER(3) := 1;
BEGIN
WHILE v_i <= 10 LOOP
dbms_output.put_line(v_i);
v_i := v_i + 1;
END LOOP;
END;

    FOR循环

FOR 循环计数器 IN [ REVERSE ] 下限 .. 上限 LOOP
要执行的语句;
END LOOP;

  示例:

--包含初始化条件、循环体、循环条件、迭代条件
DECLARE BEGIN
FOR c IN 1..10 LOOP --c会自动++
dbms_output.put_line(c);
END LOOP;
END;

  3.GOTO

PL/SQL 中 GOTO 语句是无条件跳转到指定的标号去的意思。语法如下:
GOTO label;
----------------------------------------------------
<<label>> /*标号是用<< >>括起来的标识符 */

  4.空处理NULL

BEGIN

IF v_num IS NULL THEN
GOTO print1;
END IF;

<<print1>>
NULL; -- 不需要处理任何数据。
END;

PL/SQL轻量版(二)——基本语法的更多相关文章

  1. PL/SQL轻量版(一)——入门介绍

    一.概述 1.概念对比: SQL:结构化查询语言(Structured Query Language)简称SQL(发音:/ˈes kjuː ˈel/ "S-Q-L"),是一种特殊目 ...

  2. PL/SQL轻量版(四)——存储函数/存储过程与触发器

    概述 ORACLE 提供可以把 PL/SQL 程序存储在数据库中,并可以在任何地方来运行它.这样就叫存储过程或函数.过程和函数统称为 PL/SQL 子程序,他们是被命名的 PL/SQL 块,均存储在数 ...

  3. oracle从入门到精通复习笔记续集之PL/SQL(轻量版)

    复习内容: PL/SQL的基本语法.记录类型.流程控制.游标的使用. 异常处理机制.存储函数/存储过程.触发器. 为方便大家跟着我的笔记练习,为此提供数据库表文件给大家下载:点我下载 为了要有输出的结 ...

  4. PL/SQL轻量版(三)——游标与异常处理

    一.游标 1.概念 游标是一个 指向上下文的句柄( handle) 或指针.通过游标,PL/SQL 可以控制上下文区和处理语句时上下文区会发生些什么事情. 2.游标处理 处理显式游标 主要包含以下四个 ...

  5. PL/SQL批处理语句(二)FORALL

    PL/SQL批处理语句(二)FORALL 我们知道PL/SQL程序中运行SQL语句是存在开销的,因为SQL语句是要提交给SQL引擎处理,这种在PL/SQL引擎和SQL引擎之间的控制转移叫做上下文却换, ...

  6. 基于Node和Electron开发了轻量版API接口请求调试工具——Post-Tool

    Electron 是一个使用 JavaScript.HTML 和 CSS 构建桌面应用程序的框架. 嵌入 Chromium 和 Node.js 到 二进制的 Electron 允许您保持一个 Java ...

  7. [PL/SQL工具]绿色版PLSQL工具登录时提示初始化失败,无法锁定OCI.dll错误

    问题现象:使用绿色版PL/SQL工具进行登录时报如下截图错误: 问题描述:初始化失败,无法锁定oci.dll 解决方法:在PLSQL的菜单栏里依次选择 工具->首选项,在OCI库(自动检测为空) ...

  8. PL/SQL编程基础(二):变量的声明、赋值、(赋值、连接、关系、逻辑)运算符

    变量的声明.赋值.运算符 1.声明并使用变量 变量可以在声明时赋值,也可以先定义后赋值: 使用%TYPE与%ROWTYPE可以根据已有类型定义变量. PL/SQL是一种强类型的编程语言,所有的变量都必 ...

  9. PL/SQL学习笔记(二)

    select * from protype;select * from product;---笛卡尔连接查询(交叉连接)select * from protype,product;select * f ...

随机推荐

  1. iOS 技能分类:

    1.语言与系统: 2.架构与机制: 3.性能:cpu.gpu.io.缓存.内存:性能监测工具: 4.知名开源库:

  2. Hadoop学习之路(二十)MapReduce求TopN

    前言 在Hadoop中,排序是MapReduce的灵魂,MapTask和ReduceTask均会对数据按Key排序,这个操作是MR框架的默认行为,不管你的业务逻辑上是否需要这一操作. 技术点 MapR ...

  3. 【jQuery】jQuery与Ajax的应用

    1.demo1 <script language="javascript" type="text/javascript"> //通过这个函数来异步获 ...

  4. Java实现发邮件功能

    代码如下: package com.weimob.finance.utils;import java.io.UnsupportedEncodingException;import java.util. ...

  5. 20165302 预备作业3 Linux安装及学习

    linux系统安装 我在安装VirtualBox时出现了一些小问题,如图 我的电脑只能设置32-bit的Ubuntu版本,但教程上说要选用64-bit的,我通过百度查询得知要进行BIOS设置,设置好后 ...

  6. PHP过滤

    1.过滤是不是URL(后台过滤) $url = "https://www.baidu.com"; if(!filter_var($url,FILTER_VALIDATE_URL)) ...

  7. sqoop2启动job报错

    set option --name verbose --value true   #打开报错详情输出 Exception has occurred during processing command  ...

  8. NIO高并发基础

    NIO高并发 是jdk1.4出现的新的流. NIO - New IO - 同步式非阻塞式IO BIO - Blocking IO - 同步式阻塞式IO ---UDP/TCP ==AIO - Async ...

  9. Mac 10.8.5 上运行cgi

    搭配置搭了好久,花了近半天时间,有必要把过程记录下. 本文已同步到 icocoa.tk, 欢迎访问 Mountain Lion上Setting设置里已经取消了web share,必须要自己启动apac ...

  10. jQuery左侧菜单实例

    <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8&quo ...