(一) 条件分支语句
pl/sql中提供了三种条件分支语句if - then,if – then – else,if – then – elsif – then
1) 简单的条件判断 if– then - end if;
-- 输入一个人名,如果工资低于2000,就给员工工资增加10%。 create or replace procedure add_sal(name varchar2) is v_sal emp.sal%type; begin select sal into v_sal from emp where ename = name; if v_sal < 2000 then update emp set sal = sal + sal*0.1 where ename = name; end if; end;
2) 二重条件分支 if– then– else - end if;
-- 输入员工姓名,有补助则加100,没有则设为200; create or replace procedure add_comm(name varchar2) is v_comm emp.comm%type; begin select nvl(comm, 0) into v_comm from emp where ename = name; if v_comm <> 0 then update emp set comm = comm + 100 where ename = name; else update emp set comm = 200 where ename = name; end if; end;
3) 多重条件分支 if– then– elsif– then - else - end if;
注意:elsif, 不是elseif,也不是else if
-- 输入员工编号,如果是PRESIDENT工资加1000,MANAGER加500,其他加200 create or replace procedure addSalByEmpno(eno number) is v_job emp.job%type; v_val emp.sal%type; begin select job into v_job from emp where empno = eno; if (v_job = 'PRESIDENT') then -- 条件语句可以不使用() v_val := 1000; -- pl/sal中的赋值 := elsif v_job = 'MANAGER' then -- 切记: 是 elsif 而不是 elseif 也不是 else if v_val := 500; else v_val := 200; end if; update emp set sal = sal + v_val where empno = eno; end;
(二) 循环语句
1) 循环语句–loop
这种循环语句以loop开头,以end loop结尾,这种循环至少会被执行一次。
-- 现有users表如下: create table users(id number(4), name varchar2(20)); -- 输入用户名,并循环添加10个用户到users表中, 用户编号从1开始增加。 create or replace procedure add_users(name varchar2) is v_num number(4) := 1; begin loop insert into users values(v_num, name); exit when v_num = 10; v_num := v_num + 1; end loop; end;
2) 循环语句–while循环
基本循环至少要执行循环体一次,而对于while循环来说,只有条件为true时,才会执行循环体语句,while循环以while...loop
开始,以end loop结束。
-- 用while 循环重写add_users方法。 create or replace procedure add_users2(name varchar2) is v_num number(4) := 11; begin while v_num <= 20 loop insert into users values(v_num, name); v_num := v_num + 1; end loop; end;
3) 循环语句–for循环
-- 用for 循环重写add_users方法 create or replace procedure add_users3(name varchar2) is v_i number(4); begin for v_i in reverse 1..10 loop -- reverse可选的,倒序(10.9.8..) 如果不写为(1.2.3..) insert into users values(v_i, name); end loop; end;
(三) 顺序控制语句–goto,null
1) goto语句
goto语句用于跳转到特定符号去执行语句。goto语句会增加程序的复杂性,并使得应用程序可读性变差,所有不建议使用。用法goto lable; <<label>>
-- goto语句 set serveroutput on; declare i int := 1; begin loop dbms_output.put_line('输出 i = ' || i); if i = 5 then goto end_loop; end if; i := i + 1; end loop; <<end_loop>> dbms_output.put_line('循环结束'); end;
2) null语句
null语句不会执行任何操作,并且会直接将控制传递到下一条语句。使用null语句的主要好处是可以提高pl/sql的可读性。
-- null语句 declare v_sal emp.sal%type; v_ename emp.ename%type; begin select ename, sal into v_ename, v_sal from emp where empno = &no; if v_sal < 3000 then update emp set sal = sal + sal * 0.1 where ename = v_ename; else null; -- 什么也不做,为了提高可读性。 end if; end;
相关推荐
### PL/SQL编程基础知识 #### 一、PL/SQL简介 PL/SQL(Procedural Language for SQL)是一种过程化语言,它结合了SQL的数据操纵功能和过程化语言的控制结构,使用户能够灵活地控制数据操作流程。作为Oracle数据库...
PL/SQL是Oracle数据库系统中的一个关键组成部分,它是一种过程化语言,专为数据库操作设计。这个"PL/SQL最新中文手册"显然是一份详细解释PL/SQL 7.0版本的指南,对于学习和精通Oracle数据库编程至关重要。以下是手册...
Oracle的PL/SQL编程语言是数据库管理中不可或缺的一部分,它扩展了SQL的功能,允许开发者编写复杂的业务逻辑和处理流程。在PL/SQL中,控制结构是实现程序流程控制的关键元素,它们决定了代码的执行顺序和条件。以下...
1. **编程能力**:PL/SQL允许编写包含控制结构(如循环、条件语句)和异常处理的程序块,这些块可以存储在数据库中并按需调用,提高了数据库应用的灵活性和复杂性。 2. **数据处理**:通过PL/SQL,用户可以直接对...
它结合了SQL的数据处理能力和传统编程语言的控制结构,使开发者能够在数据库环境中编写复杂的应用程序。PL/SQL直接在数据库服务器内部执行,这使得数据处理速度更快,同时也降低了网络通信的开销。 #### 二、PL/SQL...
条件分支语句是 PL/SQL 中的一种控制结构,用于根据条件执行不同的语句。条件分支语句可以是简单的,也可以是复杂的,例如使用 IF 语句、CASE 语句等。 十八、循环语句 循环语句是 PL/SQL 中的一种控制结构,用于...
Oracle 10g PL/SQL 是Oracle数据库系统中用于创建和管理存储过程、函数、触发器等数据库对象的编程语言。本教程旨在为初学者提供一个全面的学习平台,同时也为经验丰富的开发者提供参考资料。PL/SQL是Oracle特有的...
3. **控制结构**:PL/PROCEDURE和PL/FUNCTION是PL/SQL的基本程序单元,前者不返回值,后者可以返回一个值。流程控制结构有IF-THEN-ELSIF-ELSE、CASE、FOR循环、WHILE循环和GOTO。 4. **SQL操作**:PL/SQL可以直接...
Oracle PL/SQL编程是Oracle数据库管理系统中的重要组成部分,它是一种过程化语言,允许开发者编写复杂的数据库应用程序。在本次实验中,我们将重点学习PL/SQL的基本语法、控制结构、复合数据类型以及异常处理技术。 ...
在Oracle数据库中,PL/SQL提供了丰富的控制结构,如循环、条件判断,以及异常处理机制,使得开发者能够编写复杂的业务逻辑。例如,`IF...THEN...ELSIF...ELSE`语句用于实现条件分支,`WHILE`和`FOR`循环则可以处理...
《精通PL/SQL》这本书是针对Oracle数据库系统中PL/SQL编程语言的深度解析与实践指南,主要面向希望提升在Oracle环境下使用PL/SQL技能的专业人士。PL/SQL,全称为Procedural Language/Structured Query Language,是...
PL/SQL(Procedural Language/Structured Query Language)是Oracle数据库系统中用于数据库编程的一种扩展SQL语言。它结合了SQL的查询能力与过程化编程元素,使得开发者能够创建复杂的业务逻辑和数据库应用程序。PL/...
在Oracle 10g中使用PL/SQL编程,可以实现很多高级功能,例如,通过编写复杂的存储过程,可以实现批量数据处理、自定义事务控制、复杂的数据验证和清洗,以及高级的业务逻辑处理等。此外,PL/SQL还提供了丰富的内置...
《Oracle PL/SQL程序设计(第5版)》基于Oracle数据库11g,从PL/SQL编程、PL/SQL程序结构、PL/SQL程序数据、PL/SQL中的SQL、PL/SQL应用构建、高级PL/SQL主题这6个方面详细系统地讨论了PL/SQL以及如何有效地使用它。...
PL/SQL是Oracle数据库系统中的一个关键组件,全称为Procedural Language/Structured Query Language,是一种结合了SQL和过程编程语言的工具,主要用于编写数据库应用程序。64位的PL/SQL开发者工具对于那些处理大数据...
这几章将深入探讨PL/SQL中的流程控制结构,如IF语句、CASE语句、LOOP循环等,并介绍如何使用PL/SQL进行错误处理和调试。此外,还包括对PL/SQL包的介绍,讲解如何封装和重用代码,提高开发效率。 #### 第6章至第9章...
通过上述对Oracle 9i PL/SQL程序设计笔记的总结,我们可以看到PL/SQL作为一种强大的数据库编程语言,提供了丰富的功能来支持数据处理、事务控制及业务逻辑的实现。掌握PL/SQL的不同块类型及其使用方法对于开发高效、...
PL/SQL流程控制语句部分讲解了如何在PL/SQL代码中使用流程控制结构来控制程序的执行流程。这包括条件语句(IF-THEN-ELSE、CASE)、循环语句(LOOP、WHILE、FOR)。这些控制结构使得开发者能够编写出能够根据不同的...
总的来说,Oracle PL/SQL编程提供了一种强大的工具,用于构建复杂的数据库应用,结合了SQL的查询功能和编程语言的控制结构,使得数据库操作更为灵活和高效。通过熟练掌握PL/SQL,开发者可以编写出高效、健壮且易于...