PL/SQL也是一门高级语言,所以流程控制是必须要有的,oracle数据库的pl/sql比sqlserver数据库要难,很多pl/sql中有的sqlserver里面没有
流程控制;
分支语句 if 条件 then 结果 else 结果 end if ; 条件语句 case when 条件 then 结果; 循环语句 loop end loop; --while循环; for循环 顺序语句 goto null语句
下面所有的语句有的写在过程中的有的写在pl/sql块中,pl/sql块中是最方便的
----------------分支语句
------------------------------简单的条件判断 if – then
--问题:编写一个过程,可以输入一个雇员名,
--如果该雇员的工资低于2000,就给该员工工资增加500。
set serveroutput on;--打开输入输出 create or replace procedure pro_1(v_empno number) is v_sal emp.sal%type; begin select sal into v_sal from emp where empno = v_empno; if v_sal<2000 then v_sal:=v_sal+500; --更新这个员工的工资 update emp set sal=v_sal where empno=v_empno; end if; end;
-----------------二重条件分支 if – then – else
--问题:编写一个过程,可以输入一个雇员名,
--如果该雇员的工资低于2000,就给该员工工资增加500,否则只加50。
set serveroutput on;--打开输入输出 create or replace procedure pro_1(v_empno number) is v_sal emp.sal%type; begin select sal into v_sal from emp where empno = v_empno; if v_sal<2000 then v_sal:=v_sal+500; else v_sal:=v_sal+50; end if; --更新这个员工的工资 update emp set sal=v_sal where empno=v_empno; end;
---------------------多重条件 if then else if then else
--问题:编写一个过程,
--可以输入一个雇员编号,
--如果该雇员的职位是PRESIDENT就给他的工资增加500,
--如果该雇员的职位是MANAGER就给他的工资增加100,
--其它职位的雇员工资增加50。
create or replace procedure pro_2(v_empno number) is v_job emp.job%type; v_sal emp.sal%type; begin select job,sal into v_job,v_sal from emp where empno =v_empno; if v_job='PRESIDENT' then v_sal:=v_sal+500; else if v_job='MANAGER' then v_sal:=v_sal+100; else v_sal:=v_sal+50; end if; end if; --更新数据 update emp set sal=v_sal where empno=v_empno; end;
------------------------case语句
--case 条件控制
--问题:编写一个过程,
--可以输入一个雇员编号,
--如果该雇员的职位是PRESIDENT就给他的工资增加50,
--如果该雇员的职位是MANAGER就给他的工资增加40,
--CLERK 30
create or replace procedure pro_4(v_empno number) is --声明变量 v_job emp.job%type; v_sal emp.sal%type; begin select job,sal into v_job,v_sal from emp where empno =v_empno; case v_job when v_job='PRESIDENT' then v_sal:=v_sal+50; when v_job='MANAGER' then v_sal:= v_sal+40; when v_sal ='CLERK' then v_sal:=v_sal+30; else null;-- end case; --更新数据 update emp set sal=v_sal where empno=v_empno; end;
----------------------------循环语句
loop循环;
--Loop 相当于java中的do...while
--请编写一个过程,可以输入用户名,
--并循环添加10个用户到emp_user表中,用户编号从1开始增加。
建表;
create table emp_user (userno number(10),username varchar2(10));
向emp_user表中循环添加10条数据
create or replace procedure pro_3(v_username varchar2)is v_userid emp_user.userid%type :=1; begin --循环 loop insert into emp_user values(v_userno,v_username); --v_userid++ v_userid=v_userid+1; --退出循环 exit when v_userid=11; end loop; end;
-----------------------------while循环
--问题:请编写一个过程,
--可以输入用户名,并循环添加10个用户到users表中,
--用户编号从11开始增加。
建表;
create table emp_user (userno number(10),username varchar2(10));
使用while向表中添加数据
create or replace procedure pro_4(v_userno number )is v_userid emp_user.userid%type :=1; begin while v_userid<10 loop insert into emp_user values(v_userid,v_username); --v_userid++ v_userid=v_userid+1; end loop end;
--------------------------for 语句
--for循环
--for i in 1..10 loop
--for i in reverse 1..10 loop
建表;
create table emp_user (userno number(10),username varchar2(10));
使用for向表中添加十条数据
create or replace procedure pro_5(v_userno number)is begin for i in 1..10 loop insert into emp_user values(i,v_username); end loop; end;
-----------goto语句
goto语句可以跳转到程序的任何位置,java中已经不用这个关键字了,但是还保留着
createor replace procedure pro_5(v_userno number) is i number(20):=1; begin loop i:=i+1; if i=10 then goto aaa; end if; end loop; dbms_output.put_line('程序执行'); <<aaa>>;--设置goto的跳转标签 dbms_output.put_line('早就执行'); end;
当i=10时程序将条状到 <<aaa>>;--设置goto的跳转标签 dbms_output.put_line('早就执行');这个地方,标签上一行输出语句将不会输出
相关推荐
oracle笔记pl/sql流程控制,有具体的代码案例,流程控制的知识点笔记!
SQL: 结构化查询语言(Structured Query ...PL/SQL: Oracle 扩展的SQL语言,具有完整的流程控制定义。 SQL*Plus: Oracle 常用的工具,用来识别SQL语言和编写、执行PL/SQL代码,它与Oracle 数据库管理系统紧密结合。
第一章 PL/SQL 程序设计简介 第二章 PL/SQL 块结构和组成元素 第三章 PL/SQL 流程控制语句 第四章 游标的使用 第五章 异常错误处理 第六章 存储函数和过程 第七章 包的创建和应用 第八章 触发器
详细介绍了PL/SQL编程基础,比如事务控制命令、PL/SQL流程控制,PL/SQL的异常处理,游标的使用,PL、SQL编程对象等。
oracle plsql语言 第一节 PL/SQL块的组成 第二节 事务控制命令 第三节 PL/SQL流程控制 第四节 游标的使用 第五节 PL/SQL的异常处理 第六节 PL/SQL示例 第七节 PL/SQL编程对象
PL/SQL语言的简介 程序结构 流程控制 异常处理 过程与函数 游标 程序包 触发器
走进Oracle、认识PL/SQL、数据表的基本操作、表中数据的基本操作、数据的基本查询、查询中函数的使用、数据表的高级查询、索引及视图的使用、数据类型、流程控制、游标、存储过程和函数、触发器、异常处理、事务和锁...
PL-SQL语法及游标等的简单介绍 第一节 PL/SQL块的组成 第二节 事务控制命令 第三节 PL/SQL流程控制 第四节 游标的使用 第五节 PL/SQL的异常处理 第六节 PL/SQL示例 第七节 PL/SQL编程对象
SQL(Structure Query Language): 是对关系型数据库(RDBMS)进行操作的标准语言. PL/SQL(Procedural Language/SQL): 在SQL的基础上,增加了过程化处理. ... 流程结构控制 对象类型 存储过程和函数
第一节 程序块结构语言PL/SQL的组成 定义部分 定义部分 定义部分 定义部分 可执行部分 可执行部分 可执行部分: SQL语句 第二节 事务控制命令 事务提交(COMMIT) ...第三节 PL/SQL的流程控制 条件控制
SQL与编程语言之间的不同在于,SQL没有变量,SQL没有流程控制(分支,循环)。而PL/SQL是结构化的和过程化的结合体,而且最为重要的是,在用户执行多条SQL语句时,每条SQL语句都是逐一的发送给数据库,而PL/SQL可以...
本⽂⽬录: 1. PL/SQL 程序设计简介 2. PL/SQL块结构和组成元素 3. PL/SQL流程控制语句 4. 把游标说透 5. 异常错误处理 6. 把过程与函数说透 7. 程序包的创建与应⽤ 8. 把触发器说透
PL/SQL块的组成介绍;事务控制命令;PL/SQL流程控制;游标的使用;PL/SQL的异常处理;;PL/SQL示例;PL/SQL编程对象
介绍PL/SQL程式結構 常用資料型態及變數宣告 指定變數值與變數初始化 SELECT...INTO... 運算 常用的 Oracle Build-in Function 流程控制結構 迴圈
PL-SQL存储过程 ppt课件 <br>第一节 PL/SQL块的组成 第二节 事务控制命令 第三节 PL/SQL流程控制 第四节 游标的使用 第五节 PL/SQL的异常处理 第六节 PL/SQL示例 第七节 PL/SQL编程对象
PL-SQL的控制结构 做一些流程的控制 调试
2.1.3 PL/SQL流程控制 13 2.2 游标(CURSOR) 17 2.2.1 游标的概念 18 2.2.2 游标的属性 18 2.2.3 游标中FOR循环的使用 20 2.2.4 带参数游标的使用方法 20 2.3 动态SQL语句 21 2.4 例外处理 22 2.5 一个完整的PL/SQL...
第三章 PL/SQL流程控制语句 13 §3.1 条件语句 13 §3.2 CASE 表达式 13 §3.3 循环 13 §3.3 标号和GOTO 13 §3.4 NULL 语句 13 第四章 游标的使用 13 §4.1 游标概念 13 §4.1.1 处理显式游标 13 §4.1.2...
第三章 PL/SQL流程控制语句 13 §3.1 条件语句 13 §3.2 CASE 表达式 13 §3.3 循环 13 §3.3 标号和GOTO 13 §3.4 NULL 语句 13 第四章 游标的使用 13 §4.1 游标概念 13 §4.1.1 处理显式游标 13 §4.1.2 处理隐式...