分为选择语句循环语句两大类;
一 选择语句
1 if then ...end;
set serveroutput on
declare
var_name1 varchar2(50):='East';
var_name2 varchar2(50):='xiaoke';
begin
if length(var_name1)<length(var_name2) then
dbms_output.put_line('字符串"'||var_name1||'"的长度比"'||var_name2||'"的长度小');
end if;
end;

2 if then ... else ... end;
set serveroutput on ;
declare
var_age int:=55;
begin
if var_age>=56 then
dbms_output.put_line('您可以申请退休了');
else
dbms_output.put_line('您小于56岁,不可以申请退休');
end if;
end;

3 if then ... elsif ... elsif ... elsif ... end;
set serveroutput on
declare
var_month int:=10;
begin
if var_month>=0 and var_month<=3 then
DBMS_OUTPUT.PUT_LINE('这是春季');
elsif var_month>3 and var_month<=6 then
DBMS_OUTPUT.PUT_LINE('这是夏季');
elsif var_month>6 and var_month<=9 then
DBMS_OUTPUT.PUT_LINE('这是秋季');
elsif var_month>9 and var_month<=12 then
DBMS_OUTPUT.PUT_LINE('这是冬季');
else
dbms_output.put_line('您输入的月份不合法!!!');
end if;
end;

4 case .. when .. then ..when .. then .. end;
set serveroutput on
declare
var_season int:=3;
aboutinfo varchar2(50);
begin
case var_season
when 1 then
aboutinfo:=var_season||'季度包括1,2,3月份';
when 2 then
aboutinfo:=var_season||'季度包括4,5,6月份';
when 3 then
aboutinfo:=var_season||'季度包括7,8,9月份';
when 4 then
aboutinfo:=var_season||'季度包括10,11,12月份';
else
aboutinfo:=var_season||'季节不合法';
end case;
DBMS_OUTPUT.PUT_LINE(aboutinfo);
end;

二 循环语句
1 loop.. exit when .. end loop... end;
loop语句会先执行一次循环体,然后再判断 exit when 关键字后面的条件表达式的值是否为true 还是false;如果为true则退出循环体,否则继续执行循环体,使得程序至少能够执行一次循环体;
set SERVEROUTPUT ON
declare
sum_i int:=0;
i int:=0;
begin
loop
i:=i+1;
sum_i:=sum_i+i;
exit when i=100000;
end loop;
DBMS_OUTPUT.PUT_LINE('前100000个自然数的和是'||sum_i);
end;

2 while语句根据条件表达式的值执行零次或者多次循环体。每次执行循环体之前,首先要判断表达式的值是否为true;如果为true则执行循环体;否则退出while循环,继续执行while语句后面的其他代码;
while 条件表达式 loop ... end loop ... end;
set SERVEROUTPUT ON
declare
sum_i int:=0;
i int:=0;
begin
while i<=99 loop
i:=i+1;
sum_i:=sum_i+i;
end loop;
dbms_output.put_line('前100个自然数的和为'||sum_i);
end;

3 for语句 是一个可以预置循环次数的控制语句,有一个循环计数器,通常是一个整形变量,通过这个循环计数器来控制循环的次数。

set SERVEROUTPUT ON
declare
sum_i int:=0;
begin
for i in reverse 1..100 loop
if mod(i,2)=0 then
sum_i:=sum_i+i;
end if;
end loop;
dbms_output.put_line('前100个自然数的偶数和为'||sum_i);
end;

Oracle 流程控制语句的更多相关文章

  1. Oracle流程控制语句

    1.选择语句 1.1 IF...THEN...END IF语句 DECLARE MY_AGE INT; IF MY_AGE IS NULL THEN DBMS_OUTPUT.put_line('AGE ...

  2. Oracle数据库之PL/SQL流程控制语句

    Oracle数据库之PL/SQL流程控制语句 在任何计算机编程语言(如C,Java,C#等)都有各种流程控制语句,同样,在PL/SQL中也存在这样的流程控制结构. 几种常见的流程控制结构: 一.条件结 ...

  3. [推荐]ORACLE PL/SQL编程详解之三:PL/SQL流程控制语句(不给规则,不成方圆)

    原文:[推荐]ORACLE PL/SQL编程详解之三:PL/SQL流程控制语句(不给规则,不成方圆) [推荐]ORACLE PL/SQL编程详解之三: PL/SQL流程控制语句(不给规则,不成方圆) ...

  4. oracle数据库之PL/SQL 流程控制语句

    介绍 PL/SQL 的流程控制语句, 包括如下三类: 1.控制语句: IF 语句 2.循环语句: LOOP 语句, EXIT 语句 3.顺序语句: GOTO 语句, NULL 语句 一 条件语句 IF ...

  5. PL/SQL之--流程控制语句

    一.简介 像编程语言一样,oracle PL/SQL也有自己的流程控制语句.通过流程控制语句,我们可以在PL/SQL中实现一下比较复杂的业务逻辑操作.而无需到程序中去控制,在一定程度上提高了效率,这也 ...

  6. Linux Shell 流程控制语句

    * 本文主要介绍一些Linux Shell 常用的流程控制语句* 1. if 条件语句:if-then/if-elif-fi/if- else-fi if [条件判断逻辑1];then command ...

  7. 8-04流程控制语句BEGIN ..END

     流程控制语句: 是用来控制程序流程的语句. 常用的流程控制语句的分类: 顺序结构:BEGIN...END 分支结构: IF ..ELSE 或CASE ..END 循环结构:WHILE 顺序结构 语法 ...

  8. JAVA 1.6 流程控制语句

    1. 条件运算符(三元表达式),其形式为:type d = a ? b : c; 具体化形式为:int d = 2 < 1 ? 3 : 4;2. 轻量级的文本编辑器:UltraEdit.Edit ...

  9. 20151013 C# 第一篇 流程控制语句

    20151013 流程控制语句: 1.选择语句 if … else if...else 选择语句 if(布尔表达式){  语句块:} if(布尔表达式){  语句块1:}else{  语句块2:} i ...

随机推荐

  1. node10---GET请求和POST请求的参数

    GET请求的参数在URL中,在原生Node中,需要使用url模块来识别参数字符串.在Express中,不需要使用url模块了.可以直接使用req.query对象. ● POST请求在express中不 ...

  2. POJ 2184 DP

    思路: f[j]表示当ts的和为j的时候tf的最大值. 这时候要分情况讨论: (我把状态平移了101000) 若ts[i]>=0倒序循环 否则正序 (防止ts被用了多次) f[101000]=0 ...

  3. Kali linux 2016.2(Rolling)中的Exploits模块详解

    简单来将,这个Exploits模块,就是针对不同的已知漏洞的利用程序. root@kali:~# msfconsole Unable to handle kernel NULL pointer der ...

  4. 引用axiv文献的问题

    首先找了一下对8种常见引用格式进行说明的文章 https://blog.csdn.net/wkd22775/article/details/51798927 然后就是水木社区大神们的记录http:// ...

  5. avalon过滤

    <html xmlns="http://www.w3.org/1999/xhtml"><head runat="server">    ...

  6. 【原创】apache虚拟主机配置

    1.取消httpd.conf中以下行的注释 Include conf/extra/httpd-vhosts.conf 2.增加虚拟主机的目录,代表该目录作为一个网站的虚拟目录,配置权限,允许访问: & ...

  7. python继承 super()

    写这篇博文,始于以下问题的探究: #coding:utf-8 class A(object): def __init__(self): print 'enter A' print 'leave A' ...

  8. CDQ分治笔记

    以前一直不会CDQ……然后经常听到dalao们说“这题直接CDQ啊”“CDQ不就秒了吗”的时候我只能瑟瑟发抖QAQ CDQ分治 其实CDQ分治就是二分分治,每次将$[l,r]$的问题划分为$[l,mi ...

  9. Centos7&docker-ce&compose&wordpress

    如题,最近帮人装个WordPress,想起来用docker方便,这里做个记录. 原文:https://my.oschina.net/finchxu/blog/2877580 因为docker要求lin ...

  10. c++常见操作的模板

    1.统计时间 #include<ctime> clock_t startTime = clock(); code(); clock_t endTime = clock(); cout &l ...