PL/SQL程序结构概要

一、条件与顺序控制

  • IF语句

    要点

    a、一个if总要有一个匹配的end if;

    b、在关键字end和if之间一定要有空格;

    c、关键字elsif中不要夹带e;

    d、只在关键字end if后使用分号(;)

    具体表现形式

    a、IF THEN END IF

    if和then之间的条件决定then与end if之间的逻辑是否会被执行;如果条件为false或null时,指定逻辑不被执行。

    b、IF THEN ELSE END IF

    此种情况实现了逻辑上的二选一;通过if与then之间的条件结果决定是then与else之间的逻辑被执行,还是else与end if之间的逻辑被执行,总之,此种结构下一定会执行两种逻辑之一。

    c、IF THEN ELSIF ELSE END IF

    这是if语句中最复杂的语句;根据各种条件为true的情况下执行相应的逻辑。事实上,当使用到这种结构时,可以考虑是否应该使用case结构。同时,应该注意:每个elsif字句在condition之后一定要跟一个then。

  • CASE语句

    要点

    a、else语句是可选的,如果没有else语句,并且没有一个表达式的求值结果是true,就会抛出一个case_not_found异常。

    b、when表达式是按照从上到下的顺序被依次求值。

    c、一旦某些语句被执行,整个执行也就结束。意思是:即使有多个表达式求值结果都是true,也只有和第一个表达式关联的语句会被执行。

    具体表现形式

    a、简单的CASE语句

    CASE expression

    WHEN result1 THEN stat1

    WHEN result2 THEN stat2

    ELSE stat_else

    END CASE;

    语句中的else部分可有可无;pl/sql处理逻辑:首先对expression求值,之后将expression的结果与result1比较,如果两者相匹配stat1将被执行;否则检查result2,如此下去。

    b、搜索型CASE语句

    CASE

    WHEN result1 THEN stat1

    WHEN result2 THEN stat2

    ELSE stat_else

    END CASE;

    一个搜索型语句类似于简单CASE语句中expression为true的情况。

  • CASE表达式

    要点

    a、只返回一个单独的值;

    b、不要使用分号或者end case关键字来作case表达式的结尾;

    c、case表达式仅使用一个end关键字作为结束。

    具体表现形式

    a、简单的case表达式 :=CASE expression

    WHEN result1 THEN return_exp1

    WHEN result2 THEN return_exp2

    ELSE return_exp_else

    END;

    b、搜索型的case表达式 :=CASE

    WHEN result1 THEN return_exp1

    WHEN result2 THEN return_exp2

    ELSE return_exp_else

    END;

    例子

declare
  boolean_true  Boolean := true;
  boolean_false boolean := false;
  boolean_null  boolean;
  function boolean_to_varchar2(flag in boolean) return varchar2 is
  begin
    return case flag when true then ‘True‘ when false then ‘False‘ else ‘Null‘ end;
  end;
begin
  dbms_output.put_line(boolean_to_varchar2(boolean_true));
  dbms_output.put_line(boolean_to_varchar2(boolean_false));
  dbms_output.put_line(boolean_to_varchar2(boolean_null));
end;
  • NULL语句

    语法格式:NULL;

    将保留字null与分号(;)结合构成null语句。null语句代表没有执行逻辑。特别是当else字句没有自己的逻辑的时候,可以用来增强代码的可读性。

二、迭代结构(循环)

三、异常处理

时间: 2024-12-12 06:36:16

PL/SQL程序结构概要的相关文章

pl/sql程序语言

pl/sql程序基础知识: pl/sql(procedural language/sql)oracle在标准sql上面的扩展,不仅简单的sql语句,还具有一般语言的特性:变量,常量,流程控制和循环,错误处理机制.是一个功能完善强大的过程化语言. 它的编程基本单位是块,复杂的功能都是多个块组成 我们来看看它的实列代码: 块结构: declear --定义部分,可选 /*定义部分--变量,常量,游标,异常,复杂数据类型*/ begin --执行部分 /*pl/sql语句和SQL语句;*/ excep

PL/SQL程序基础设计

一.PL/SQL块结构 前边我们已经介绍了PL/SQL块的结构,再来回顾一下: DECLARE /* * 声明部分——定义常量.变量.复杂数据类型.游标.用户自定义异常 */ BEGIN /* * 执行部分——PL/SQL语句和SQL语句 */ EXCEPTION /* * 异常处理部分——处理运行异常 */ END; /*块结束标记 */ 要实现PL/SQL程序设计,先介绍如下的基本内容: 二.标识符 PL/SQL程序设计中的标识符定义与SQL的标识符定义的要求相同: 标识符名第一个字符必须为

PL/SQL程序设计基础语法详解(一)

一.什么是PL/SQL(Procedure Language/SQL) 概念:PLSQL是Oracle对sql语言的过程化扩展 指在SQL命令语言中增加了过程处理语句(如分支.循环等),使SQL语言具有过程处理能力. PL/SQL的结构: declare 说明部分 (变量说明,光标申明,例外说明 ] begin 语句序列 (DML语句]- exception 例外处理语句 End; 简单的PL/SQL程序 如果是在命令行中需要使用 set serveroutput on先打开显示 declare

Oracle数据库之PL/SQL程序基础设计

http://www.cnblogs.com/hellokitty1/p/4572930.html DECLARE /* * 声明部分——定义常量.变量.复杂数据类型.游标.用户自定义异常 */ BEGIN /* * 执行部分——PL/SQL语句和SQL语句 */ EXCEPTION /* * 异常处理部分——处理运行异常 */ END; /*块结束标记 */ 要实现PL/SQL程序设计,先介绍如下的基本内容: 二.标识符 PL/SQL程序设计中的标识符定义与SQL的标识符定义的要求相同: 标识

Oracle数据库之PL/SQL程序设计基础

PL/SQL程序设计基础 一.PL/SQL块结构 前边我们已经介绍了PL/SQL块的结构,再来回顾一下: DECLARE /* * 声明部分——定义常量.变量.复杂数据类型.游标.用户自定义异常 */ BEGIN /* * 执行部分——PL/SQL语句和SQL语句 */ EXCEPTION /* * 异常处理部分——处理运行异常 */ END; /*块结束标记 */ 要实现PL/SQL程序设计,先介绍如下的基本内容: 二.标识符 PL/SQL程序设计中的标识符定义与SQL的标识符定义的要求相同:

PL/SQL程序控制结构及在PL/SQL中更改数据和管理事务

1.条件控制 A. IF条件分支语法: if (条件1) then 语句; elsif (条件2) then 语句; elsif (条件3) then 语句; else 语句; end if; B . case条件分支:等值比较.条件比较.case表达式 a.等值比较语法: CASE  条件判断 WHEN      条件值的表达式    THEN       要执行的条件操作     ; ……. [ELSE   ……..] END   CASE; b. 条件比较语法: CASE WHEN   不

PL/SQL基本结构---PLSQL复合类型---表类型变量table

表类型变量table 语法如下:      type 表类型  is table of  类型  index by binary_integer;      表变量名  表类型; 类型可以是前面的类型定义,index by binary_integer 子句代表以符号整数为索引,这样访问表类型变量中的数据方法就是“表变量名(索引符号整数)”.table类型,相当于java中的Map容器,就是一个可变长的数组,key(符号整数索引)必须是整数,可以是负数,value(类型)可以是标量,也可以是re

PL/SQL基本结构---函数

数据类型转换函数 PL/SQL程序中提供了很多函数供扩展功能,除了标准SQL语言的函数可以使用外,最常见的数据类型转换函数有以下3个.      To_char:将其他类型数据转换为字符型.      To_date:将其他类型数据转换为日期型.       To_number:将其他类型数据转换为数值型. 系统输出打印      利用pl/sql在数据库服务器端打印一句话:      --set serveroutput on--设置数据库输出,默认为关闭,每次重新打开窗口需要重新设置.   

编写PL/SQL程序使用数据泵导出导入数据

1.什么是数据泵?就是oracle的一个PL/SQL程序包 dbms_datapump2.数据泵技术是Oracle Database 10g 中的新技术,它比原来导入/导出(imp,exp)技术快15-45倍.速度的提高源于使用了并行技术来读写导出转储文件. expdp使用 使用EXPDP工具时,其转储文件只能被存放在DIRECTORY对象对应的OS目录中,而不能直接指定转储文件所在的OS目录.因此使用EXPDP工具时,,必须首先建立DIRECTORY对象,并且需要为数据库用户授予使用DIREC