`
lixin_2002
  • 浏览: 21445 次
  • 性别: Icon_minigender_1
  • 来自: 重庆
社区版块
存档分类
最新评论

PL/SQL复习三 程序控制语句

阅读更多

 

一、条件分支语句:

 

--1. if..else 条件判断                                               

declare                                                                     
  v_comm emp.comm%type;                                       
  v_empno emp.empno%type := &no;                                       
begin                                                                                                                     
  select comm into v_comm from emp where empno = v_empno;
  if v_comm < 500 then                                                                                                                     
    update emp set comm = comm + 500 where empno = v_empno;
  elsif v_comm >= 500 and v_comm < 1000 then                                       
    update emp set comm = comm + 300 where empno = v_empno;
  else                                                                                                                     
    update emp set comm = comm + 100 where empno = v_empno;
  end if;                                                                                                                     
end;                                                                                                                     
/                      

                                                                                                


--2. case匹配单一值

declare                                                                              
  v_deptno emp.deptno%type := &deptno;
begin                                                                                                                     
  case v_deptno                                                                              
    when 10 then                                                                              
      update emp set comm = 1111 where deptno = v_deptno;
    when 20 then                                                                              
      update emp set comm = 2222 where deptno = v_deptno;
    when 30 then                                                                              
      update emp set comm = 3333 where deptno = v_deptno;
    else                                                                              
      dbms_output.put_line('没有该部门...');
    end case;                                                                              
end;                                                                              
/           

                                                                                                           


--3. case匹配复杂条件

declare                                                                                                                     
  v_comm emp.comm%type;                                                                              
  v_empno emp.empno%type := &no;                                                                              
begin                                                                                                                     
  case                                                                                                                      
    when v_comm < 500 then                                                                              
      update emp set comm = comm + 500 where empno = v_empno;
    when v_comm >= 500 and v_comm < 100 then                                       
      update emp set comm = comm + 300 where empno = v_empno;
    else                                       
      update emp set comm = comm + 100 where empno = v_empno;
    end case;                                                                              
end;                                                                              
/
 

------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------                                                                              

二、循环语句:                                                                                                                     

--1.基本循环 loop                                                                              

declare                                                                                                                                                            
   v_i int := 1;                                                                                                                     
begin                                                                                                                                                            
  loop                                                                                                                     
    insert into temp values(v_i);                                       
    exit when v_i=10;                                                                                                                     
    v_i := v_i+1;                                                                                                                     
   end loop;                                                                              
end;                                                                                                                     
/             

                                                                                                                                                


--2.while循环

declare
 i int := 1;
begin
 while i < 10 loop
   dbms_output.put_line('i: ' || i);
   i := i+1;
 end loop;
end;
/
 


--3.for循环

begin
  for i in 1..10 loop
    dbms_output.put_line('i: ' || i );
  end loop;
end;
/
 


--4.for循环  加入reverse关键字 表示反向开始

begin
  for i reverse in 1..10 loop
    dbms_output.put_line('i: ' || i );
  end loop;
end;
/
 


--5.嵌套循环和标号

declare
  v_result int;
begin
  <<outer1>>
  for i in 1..10 loop
    <<inter1>>
    for j in 1..10 loop
      v_result := i*j;
      exit outer1 when v_result = 100;
      exit when v_result = 50;
    end loop inter1;
    dbms_output.put_line(v_result);
  end loop outer1;
  dbms_output.put_line(v_result);
end;
/
 


------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------

三、顺序控制语句:

--1.GOTO

declare
  i int := 1;
begin
  loop
    insert into temp values(i);
    if i=10 then
      goto end_loop;
    end if;
    i := i + 1;
  end loop;
  <<end_loop>>
  dbms_output.put_line('循环结束');
end;
/
 


--2.null

declare
  v_sal emp.sal%type;
begin
  select sal into v_sal from emp where empno = &no1;
  if v_sal > 300 then
    update emp set sal = 1000 where empno = &no2;
  else
    null;
  end if;
end;
/
 

 

 

分享到:
评论

相关推荐

    Oracle中SQL以及PL/SQL复习专用

    - **PL/SQL**:过程化SQL(Procedural Language for SQL),是Oracle专有的扩展语言,它结合了SQL和传统的程序设计语言的功能。 - **变量声明**:在PL/SQL块中声明变量,可以使用不同的数据类型,如VARCHAR2、NUMBER等...

    PL/SQL基础

    它是SQL的扩展,提供了更高级别的控制结构和流程逻辑,使得数据库管理与应用程序开发更加灵活和强大。 PL/SQL的基础知识主要包括以下几个方面: 1. **变量声明**:在PL/SQL中,我们可以声明各种数据类型的变量,如...

    oracle复习笔记之PL/SQL程序所要了解的知识点

    PL/SQL程序由声明、执行和异常处理三部分组成。声明部分定义变量、游标和数据类型;执行部分是程序的主要逻辑;异常处理部分则用于捕获并处理可能出现的错误。 2. 记录类型: 记录类型允许我们创建自定义的数据结构...

    oracle第一天练习

    执行部分包含SQL语句和PL/SQL控制结构,如循环、条件判断等;异常处理部分用于捕获和处理运行时可能出现的错误。 在PL/SQL中,你可以编写存储过程、函数、触发器、游标等,这些都是数据库级别的程序单元,可以直接...

    plsql中文

    1Z0-007是Oracle Certified Associate, Oracle Database 12c Administrator Certified Professional的考试代码,这个文档可能是针对该考试的复习笔记或学习指南,包含PL/SQL部分的要点,如数据类型、子程序...

    Oracle选择题复习(带答案).doc

    * 在 PL/SQL 语句块中,跳出循环体所用的语句是 EXIT。 数据库启动和关闭 * 数据库启动过程中,会在实例启动时读取参数文件。 * 数据库关闭时,首先需要卸载数据库。 * 数据库启动时,会读取控制文件。 数据库...

    orcl复习资料.docx

    通过这些复习材料,我们可以深入理解PL/SQL中的循环控制和异常处理机制,这对于任何希望在Oracle数据库环境中进行编程的人来说都是至关重要的知识。掌握这些技能将使你能够编写出健壮且具有错误处理能力的数据库程序...

    y2复习题及答案快快抢啊,而且分还低,答案真实!!!

    - **函数**是在Oracle数据库中存储的已命名的PL/SQL程序块,可以带有参数,并且能够返回值。 - 创建函数时可以指定参数类型,包括数据库类型和PL/SQL类型。 #### 函数参数 1. **选项A**:此说法错误,函数不仅可以...

    我们公司的内部oracle开发课件(我的珍藏)

    Oracle开发不仅涉及到SQL语言的使用,还包括PL/SQL编程、数据库设计、性能优化等多个方面。1000.jpg可能是一张包含关键概念或流程图的图片,用于辅助理解复杂的Oracle架构或操作步骤。新建 Microsoft PowerPoint ...

    第三章-plsql-SQL语言复习PPT课件.ppt

    PL/SQL SQL语言复习笔记 PL/SQL 是一种 procedural language,用于处理和操作数据库中的数据。它是 Structured Query Language(SQL)的扩展,提供了更多的编程功能和控制能力。 SQL 语言的发展 SQL 语言的发展...

    ssd5-exam1选择题题库

    C++预处理器指令是一种特殊的语句,它们在编译器实际执行编译过程之前被预处理器处理。这些指令主要用于宏定义、文件包含、条件编译等操作,帮助开发者在编译前对源代码进行修改或定制。预处理器指令以`#`字符开头,...

    ORACLE复习资料

    - 控制流语句:如IF-THEN-ELSE、CASE、FOR循环等,用于控制程序流程。例如: ```sql IF 条件 THEN 执行语句; ELSE 执行语句; END IF; ``` - 子程序:包括函数和过程,可以封装和重用代码。例如定义一个...

    良心出品oracle数据库期末复习.doc

    这篇文档"良心出品oracle数据库期末复习.doc"涵盖了Oracle数据库的基础知识,包括数据文件、日志文件、控制文件等数据库组件,以及数据库操作、表空间管理、用户权限、SQL语句和PL/SQL编程等内容。 一、Oracle...

    oracle复习资料

    oracle PL/sql语言复习资料,很全的oracle函数,sql语句,以及游标,存储过程,触发器等复习资料.

    Oracle期末考试复习题.pdf

    Oracle数据库是企业级的关系...以上内容详尽地阐述了Oracle数据库的一些基础知识点,包括数据库组件、SQL语句、数据类型、权限管理以及PL/SQL编程中的基本操作。这些都是学习和使用Oracle数据库时必须掌握的基础知识。

    Oracle常用SQL语句复习

    这篇“Oracle常用SQL语句复习”涵盖了在Oracle环境中经常使用的一些核心SQL语句,这对于数据库管理员和开发人员来说至关重要。 1. **数据查询**:在Oracle中,`SELECT`语句是最基础的查询工具。例如,`SELECT ...

    青鸟2单元内测答案

    同时,掌握PL/SQL的程序结构和流程控制,如IF-THEN-ELSE、WHILE循环和CASE语句,对于编写复杂的数据库逻辑至关重要。 网页设计方面,WEB标签可能指的是HTML、CSS和JavaScript这三大基础技术。HTML(HyperText ...

Global site tag (gtag.js) - Google Analytics