`
53873039oycg
  • 浏览: 837318 次
  • 性别: Icon_minigender_1
社区版块
存档分类
最新评论

pl/sql的if..elsif备忘

阅读更多

     最近在试着重新看下pl/sql,印象中pl/sql的if语句后面是可以跟elseif的。写了个简单的判断数字大小的语句:

     

declare
  v_id number;
begin
  v_id := &id;
  if v_id < 10 then
    dbms_output.put_line('the value is:' || v_id ||
                         ' it''s true that the value less than 10 ');
    elseif v_id < 20 then dbms_output.put_line('the value is:' || v_id ||
                                               ' it''s true that the value is less than20 ');
    elseif v_id < 30 then dbms_output.put_line('the value is:' || v_id ||
                                               ' it''s true that the value is  less than 30 ');
  end if;
end;

    在pl/sql下面elseif不变色,试着运行,直接报错了,从报错信息上看,在elseif附近存在错误,第一感觉是pl/sql 下elseif不是关键字,而是把elseif拆成else if,这样就ok了

   

set serveroutput on;
declare
  v_id number;
begin
  v_id := &id;
  if v_id < 10 then
    dbms_output.put_line('the value is:' || v_id ||
                         ' it''s true that the value is less than 10 ');
  else
    if v_id < 20 then
      dbms_output.put_line('the value is:' || v_id ||
                           ' it''s true that the value is less than 20 ');
    else
      if v_id < 30 then
        dbms_output.put_line('the value is:' || v_id ||
                             ' it''s true that the value is less than 30 ');
      else
        dbms_output.put_line('the value is:' || v_id ||
                             ' it''s true that the value is greater than 30 ');
      end if;
    end if;
  end if;
end;

    这样写要特别注意end if和if的对应关系,一不小心漏掉一个end if就错了,有没有简单点的写法呢?
    其实pl/sql是支持else if这样的语法的,不过不是elseif,而是elsif,else少了一个e,用elsif写就是下面这样:

   

set serveroutput on;
declare
  v_id number;
begin
  v_id := &id;
  if v_id < 10 then
    dbms_output.put_line('the value is:' || v_id || ' it''s true that the value is less than 10 ');
  elsif v_id < 20 then
    dbms_output.put_line('the value is:' || v_id || ' it''s true that the value is less than 20 ');
  elsif v_id < 30 then
    dbms_output.put_line('the value is:' || v_id || ' it''s true that the value is less than 30 ');
  else
    dbms_output.put_line('the value is:' || v_id || ' it''s true that the value is greater than 30 '); 
end if;
end;

    我上面的是在cmd window下运行的,如果想直接在sql window下按F8运行,请去掉:

   

set serveroutput on;

    如下所示:

   

    使用elsif写感觉简洁多了,elsif的语法如下:

   

IF THEN
  --do something...
ELSIF THEN
  --do something...
ELSIF THEN
  --do something...
ELSE
  --do something...
END IF;

    全文完。

 

  • 大小: 83.1 KB
0
2
分享到:
评论

相关推荐

    PL/SQL 9.X官方汉化,注册机

    2. **流程控制语句**:具备IF-THEN-ELSIF-ELSE、CASE、FOR循环、WHILE循环等结构,用于控制程序的执行流程。 3. **异常处理**:通过BEGIN-EXCEPTION-END块可以捕获和处理运行时错误,增强程序的健壮性。 4. **游标...

    oracle10g_pl/sql

    - **流程控制**:包括IF...ELSIF...ELSE、CASE、FOR循环、WHILE循环等结构。 2. **PL/SQL程序单元** - **存储过程**:一组PL/SQL语句,可重复调用,提高代码复用性。 - **函数**:类似于过程,但返回一个值,可...

    PL/SQL 基础.doc

    PL/SQL 基础,一个不错的 PL/SQL 参考手册。内容预览: ---- 第一章 PL/SQL 简介 ---- 1. Oracle应用编辑方法概览 1) Pro*C/C++/... : C语言和数据库打交道的方法,比OCI更常用; 2) ODBC 3) OCI: C语言和...

    Oracle PL/SQL实战(待续)

    例如,`IF...THEN...ELSIF...ELSE`语句用于实现条件分支,`WHILE`和`FOR`循环则可以处理迭代任务。异常处理部分,如`BEGIN...EXCEPTION...END`块,能够捕获并处理运行时错误,确保程序的健壮性。 "demobld.sql"这个...

    pl/sql最新中文手册

    2. **控制流程语句**:这包括条件判断(IF-THEN-ELSIF-ELSE)和循环(WHILE、FOR、LOOP)。这些语句允许根据特定条件执行代码块或重复执行某段代码。 3. **异常处理**:在PL/SQL中,异常处理是通过EXCEPTION关键字...

    PL/SQL Developer V14.0.2.1969 x86/x64 最新官方多语言注册版(含中文)2020.08.22 官方更新

    2. **控制流语句**:包括IF-THEN-ELSIF-ELSE、CASE语句用于条件判断,WHILE和FOR循环用于迭代,以及LOOP结构提供更灵活的循环控制。 3. **异常处理**:PL/SQL中的BEGIN-EXCEPTION-END结构允许捕获并处理运行时错误...

    Oracle PL/SQL实例编程(PL/SQL经典书籍)

    流程控制结构有IF-THEN-ELSIF-ELSE、CASE、FOR循环、WHILE循环和GOTO。 4. **SQL操作**:PL/SQL可以直接嵌入SQL语句,进行数据查询、插入、更新和删除操作。游标允许程序逐行处理查询结果。 5. **异常处理**:PL/...

    PL/SQL入门到精通书的源代码

    执行部分包含控制流语句(如IF-THEN-ELSIF, CASE, LOOP)以及SQL语句;异常处理部分则使用BEGIN...EXCEPTION结构来捕获和处理运行时错误。 2. **变量与数据类型**:PL/SQL支持多种内置数据类型,如NUMBER、VARCHAR2...

    Oracle Database 12c PL/SQL开发指南 实例源代码

    1. **PL/SQL基础**:PL/SQL的基础语法,如变量声明、数据类型、流程控制语句(如IF-THEN-ELSIF,FOR循环,WHILE循环)、异常处理(BEGIN-EXCEPTION-END结构)等。 2. **函数与过程**:如何定义和调用用户自定义的...

    Oracle PL/SQL专家指南-高级PL/SQL解决方案的设计与开发

    1. **PL/SQL基础**:涵盖PL/SQL的基本语法,包括变量声明、常量定义、条件语句(IF-THEN-ELSIF-ELSE)、循环结构(WHILE, FOR)、异常处理(BEGIN-EXCEPTION-END)以及子程序(PROCEDURE和FUNCTION)的创建与调用。...

    Oracle PL/SQL学习官方教材

    2. **流程控制**:PL/SQL提供了多种流程控制结构,如条件语句(IF-THEN-ELSIF-ELSE)、循环(WHILE、FOR、LOOP)、CASE表达式,以及异常处理(EXCEPTION)。这些结构使得程序可以根据不同条件执行不同的代码段。 3....

    Oracle PL/SQL 实例精解(第4版涵盖Oracle 11g)+源码脚本

    1. **基础语法**:PL/SQL的基础包括声明变量、常量、游标、记录类型以及控制流程语句(如IF-THEN-ELSIF,WHILE,FOR循环)。书中会详细介绍如何编写简单的PL/SQL块,包括声明部分、执行部分和异常处理部分。 2. **...

    pl/sql精通

    4. 控制结构:PL/SQL提供了流程控制结构,包括IF...THEN...ELSIF...ELSE、CASE、FOR循环、WHILE循环,以及BEGIN...END块结构,用于编写复杂的程序逻辑。 5. SQL语句:PL/SQL可以直接嵌入SQL语句,执行查询、插入、...

    pl/sql学习笔记

    条件控制语句如IF-THEN-ELSIF-ELSE和CASE语句允许根据条件执行不同的代码路径。这使得在处理数据时能够进行条件判断和分支操作。 7. **PROCEDURE** PROCEDURE是PL/SQL中的过程,是一组相关的PL/SQL语句,可以接受...

    精通pl/sql

    1. **PL/SQL基础**:介绍PL/SQL的基本语法,包括变量声明、常量定义、条件判断语句(IF-THEN-ELSIF-ELSE)、循环结构(WHILE、FOR)、异常处理(BEGIN-EXCEPTION-END)等,以及如何编写存储过程、函数和触发器。...

    PL/SQL中文帮助手册

    3. **流程控制**:PL/SQL提供了一系列流程控制结构,包括IF...THEN...ELSIF...ELSE语句、CASE语句、FOR循环、WHILE循环等,用于根据条件或循环执行代码。 4. **子程序**:包括函数和过程。函数返回一个值,而过程不...

    oracle 经典资料及PL/SQL 使用指南 英文版

    3. 控制流程语句:包括条件语句(IF-THEN-ELSIF-ELSE)、循环语句(WHILE、FOR)以及CASE语句,这些是控制程序流程的关键。 4. 子程序与包:PL/SQL允许定义函数、过程和包,用于封装代码,提高可重用性。了解如何...

    pl/sql 学习资料

    - 控制流程语句:学习IF-THEN-ELSIF-ELSE、CASE、FOR循环、WHILE循环等。 - 函数和过程:创建和调用自定义函数和过程,理解参数传递方式。 2. **PL/SQL与SQL交互**: - DML操作:INSERT、UPDATE、DELETE语句在PL...

    oracle pl/sql从入门到精通 配套源代码

    PL/SQL支持变量、常量、条件语句(如IF-THEN-ELSIF-ELSE)、循环(如FOR、WHILE)、异常处理(如EXCEPTION)等基本编程元素。 在Oracle PL/SQL中,我们可以通过使用SQL语句来与数据库进行交互,例如SELECT用于查询...

    oracle pl/sql fundamentals

    3. **控制流程语句**:学习条件判断(IF-THEN-ELSIF-ELSE)和循环结构(WHILE、FOR循环),以及如何通过这些语句实现条件分支和迭代。 4. **异常处理**:理解PL/SQL中的错误处理机制,学习使用EXCEPTION块来捕获和...

Global site tag (gtag.js) - Google Analytics