Oracle学习操作(3)
一、if条件语句
set serverout on;
declare n number:=1;
v varchar(20):='world';
begin
dbms_output.put_line('hello'||n||v);
end;
/ hello1world
declare emp_count number;
begin
select count(*) into emp_count from emp where sal >= 3000;
if(emp_count>0) then
dbms_output.put_line('有'||emp_count||'员工的基本薪资大于等于3000');
else
dbms_output.put_line('没有员工的基本薪资大于等于3000');
end if;
end;
有3个员工的基本薪资大于等于3000
if elseif else if :
SQL> declare emp_count number;
2 begin
3 select count(*) into emp_count from emp where sal >= 3000;
4 if(emp_count=1) then
5 dbms_output.put_line('有1个员工的基本薪资大于等于3000');
6 else if(emp_count>1) then
7 dbms_output.put_line('超过1个员工的基本薪资大于等于3000');
8 else
9 dbms_output.put_line('没有员工的基本薪资大于等于3000');
10 end if;
11 end if;
12 end;
13 /
超过1个员工的基本薪资大于等于3000 PL/SQL 过程已成功完成。
二、case when流程控制语句
SQL> declare emp_count number;
2 begin
3 select count(*) into emp_count from emp where sal >= 3000;
4 case emp_count
5 when 0 then dbms_output.put_line('没有员工的基本薪资大于等于3000');
6 when 1 then dbms_output.put_line('有1个员工的基本薪资大于等于3000');
7 when 2 then dbms_output.put_line('有2个员工的基本薪资大于等于3000');
8 when 3 then dbms_output.put_line('有3个员工的基本薪资大于等于3000');
9 else dbms_output.put_line('超过3个员工的基本薪资大于等于3000');
10 end case;
11 end;
12 /
有3个员工的基本薪资大于等于3000 PL/SQL 过程已成功完成。
三、循环语句
1.无条件循环 loop:
salgrade表:

现在循环grade从2到4,打印出最低薪资,和最高薪资:
SQL> declare g_id number:=2;
2 g_losal number;
3 g_hisal number;
4 begin
5 loop
6 if(g_id>4) then
7 exit;
8 end if;
9
10 select losal,hisal into g_losal, g_hisal from salgrade where grade = g_id;
11 dbms_output.put_line(g_id||'等级的最低薪资'||g_losal||',最高薪资'||g_hisal);
12
13 g_id := g_id + 1;
14 end loop;
15 end;
16 /
2等级的最低薪资1201,最高薪资1400
3等级的最低薪资1401,最高薪资2000
4等级的最低薪资2001,最高薪资3000 PL/SQL 过程已成功完成。
2.while循环:
SQL> declare g_id number:=2;
2 g_losal number;
3 g_hisal number;
4 begin
5 while(g_id<5) loop
6 select losal,hisal into g_losal, g_hisal from salgrade where grade = g_id;
7 dbms_output.put_line(g_id||'等级的最低薪资'||g_losal||',最高薪资'||g_hisal);
8
9 g_id := g_id + 1;
10 end loop;
11 end;
12 /
2等级的最低薪资1201,最高薪资1400
3等级的最低薪资1401,最高薪资2000
4等级的最低薪资2001,最高薪资3000 PL/SQL 过程已成功完成。
3、for循环:
SQL> declare g_losal number;
2 g_hisal number;
3 begin
4 for g_id in 2..4 loop
5 select losal,hisal into g_losal, g_hisal from salgrade where grade = g_id;
6 dbms_output.put_line(g_id||'等级的最低薪资'||g_losal||',最高薪资'||g_hisal);
7 end loop;
8 end;
9 /
2等级的最低薪资1201,最高薪资1400
3等级的最低薪资1401,最高薪资2000
4等级的最低薪资2001,最高薪资3000 PL/SQL 过程已成功完成。
Oracle学习操作(3)的更多相关文章
- oracle学习操作(1)
一.oracle表及表空间: 1.查看用户.用户表空间等,需要sysdba登陆: select username, default_tablespace from dba_users; 2.一个数 ...
- Oracle学习操作(7)用户、权限、角色
一.oracle用户: 二.权限 1.系统权限: sys登陆创建c##test用户后,给用户c##test授权,并且带有传播性: SQL> create user c##test identif ...
- Oracle学习操作(6)函数与存储过程
一.oracle自定义函数 1.不带参数的函数: 返回t_book表的总条数: SQL> create function getBookCount return number as begin ...
- Oracle学习操作(5)触发器
Oracle触发器 一.触发器简介 具备某些条件,由数据库自动执行的一些DML操作行为: 二.语句触发器 现在数据库创建t_book表:t_booktype表:t_book表的typeid存在外键参考 ...
- Oracle OCI操作UDT相关学习(二)
沿用 Oracle OCI操作UDT相关学习 一文中定义的类型和表. 1.更改数据 在sqldeveloper 中更新数据, update dxl.cust set addr.street='a11' ...
- Oracle学习笔记三 SQL命令
SQL简介 SQL 支持下列类别的命令: 1.数据定义语言(DDL) 2.数据操纵语言(DML) 3.事务控制语言(TCL) 4.数据控制语言(DCL)
- Oracle学习指南
Oracle学习指南 你走的那天,我决定不落泪,迎着风撑着眼帘用力不眨眼 创建数据库.创建用户.创建表空间.创建表.插入数据..... 1.用系统用户登录,任选系统用户 代码: >>sql ...
- Oracle学习系列1-7
Oracle学习系列1 两个服务必须启动: OracleOraDb10g*TNListener 和 OracleService*** 使用sqlplusw先进行环境的设置 set linesize 3 ...
- Oracle学习系列7
Oracle学习系列7 ************************************************************************************ 关联表 ...
随机推荐
- LInux内核分析--使用库函数API和C代码中嵌入汇编代码两种方式使用同一个系统调用
实验者:江军 ID:fuchen1994 实验描述: 选择一个系统调用(13号系统调用time除外),系统调用列表参见http://codelab.shiyanlou.com/xref/linux-3 ...
- nested exception is java.sql.SQLException: Incorrect string value: '\xE7\x99\xBB\xE9\x99\x86...' for column 'image' at row 1
HTTP Status 500 - Hibernate operation: could not insert: [cn.itcast.shop.product.vo.Product]; uncate ...
- 一种简单的hook方法--LD_PRELOAD变量
LD_PRELOAD这个变量允许你定义在程序运行时优先加载的动态链接库,从而在程序运行时的动态链接 下面程序的看一个例子-getuid.c //getuid.c #include<stdio.h ...
- Eclipse js报错问题解决办法
最近在Eclipse中导入新项目后会发现js报错,但是不影响程序的运行,但是对于程序员的我们来说多少还是比较在意代码前面的红色的X的,有木有??? 上网也查了很多方法,对于其中一种方法表示不能完全解决 ...
- H - 【59】Lazier Salesgirl 模拟//lxm
Kochiya Sanae is a lazy girl who makes and sells bread. She is an expert at bread making and selling ...
- Java一个简单的线程池实现
线程池代码 import java.util.List; import java.util.Vector; public class ThreadPool { private static ...
- 如何修改magento产品详细页面的栏目
magento默认模板里面的产品信息页面的布局是以两栏带右侧栏显示的,那么如何修改为两栏带左侧栏或者三栏.一栏的方式显示呢?下面教大家一种很简单的方法就可以实现.下面是默认的布局预览:
- memset,memcpy,strcpy
http://www.cppblog.com/junfeng568/archive/2006/03/11/4022.html
- 【linux】如何退出shell终端
退出shell终端: exit + 回车即可 清除当前屏幕信息 clear 不过clear只是将之前的命令向上隐藏啦...
- 【计算机视觉】如何使用opencv自带工具训练人脸检测分类器
前言 使用opencv自带的分类器效果并不是很好,由此想要训练自己的分类器,正好opencv有自带的工具进行训练.本文就对此进行展开. 步骤 1.查找工具文件: 2.准备样本数据: 3.训练分类器: ...