【PL/SQL练习】控制结构
1.if判断:
if-then-end if:
SQL> declare
2
3 v_ename emp.ename%type;
4 v_sal emp.sal%type;
5
6 begin
7
8 select ename,sal into v_ename,v_sal from emp where empno=&#
9 dbms_output.put_line('Old salary is: '||v_sal);
10 if v_sal < 8000 then
11 update emp set sal=sal+1000 where empno=#
12 commit;
13 end if;
14 select ename,sal into v_ename,v_sal from emp where empno=#
15 dbms_output.put_line('New salary is: '||v_sal);
16
17 end;
if-then-else-end if:
SQL> declare
2
3 v_ename emp.ename%type;
4 v_sal emp.sal%type;
5
6 begin
7
8 select ename,sal into v_ename,v_sal from emp where empno=&#
9 dbms_output.put_line('Old salary is: '||v_sal);
10 if v_sal < 8000 then
11 update emp set sal=sal+1000 where empno=#
12 commit;
13 else
14 update emp set sal=sal+500 where empno=#
15 commit;
16 end if;
17 select ename,sal into v_ename,v_sal from emp where empno=#
18 dbms_output.put_line('New salary is: '||v_sal);
19
20 end;
if-then-elsif-else-end if:
SQL> declare
2
3 v_ename emp.ename%type;
4 v_sal emp.sal%type;
5 v_job emp.job%type;
6
7 begin
8
9 select ename,job,sal into v_ename,v_job,v_sal from emp where empno=&#
10 dbms_output.put_line('JOB is: '||v_job||';'||'Old salary is: '||v_sal);
11 if v_job='SALESMAN' then
12 update emp set sal=sal+1000 where empno=#
13 commit;
14 elsif v_job='CLERK' then
15 update emp set sal=sal+800 where empno=#
16 commit;
17 else
18 update emp set sal=sal+500 where empno=#
19 commit;
20 end if;
21 select ename,job,sal into v_ename,v_job,v_sal from emp where empno=#
22 dbms_output.put_line('JOB is: '||v_job||';'||'New salary is: '||v_sal);
23
24 end;
SQL> declare
2
3 v_ename emp.ename%type;
4 v_sal emp.sal%type;
5 v_job emp.job%type;
6
7 begin
8
9 select ename,job,sal into v_ename,v_job,v_sal from emp where empno=&#
10 dbms_output.put_line('JOB is: '||v_job||';'||'Old salary is: '||v_sal);
11 if v_job='SALESMAN' then
12 update emp set sal=sal+1000 where empno=#
13 commit;
14 elsif v_job='CLERK' then
15 update emp set sal=sal+800 where empno=#
16 commit;
17 else
18 update emp set sal=sal+500 where empno=#
19 commit;
20 end if;
21 select ename,job,sal into v_ename,v_job,v_sal from emp where empno=#
22 dbms_output.put_line('JOB is: '||v_job||';'||'New salary is: '||v_sal);
23
24 end;
2.case分支判断:
SQL> declare
2 v_ename emp.ename%type;
3 v_job emp.job%type;
4 v_sal emp.sal%type;
5 v_out varchar2(10);
6
7 begin
8 select ename,job,sal into v_ename,v_job,v_sal from emp where empno=&#
9 dbms_output.put_line('JOB is: '||v_job||';'||'Old salary is: '||v_sal);
10
11 v_out:=case v_job
12 when 'CLERK' THEN v_SAL+100
13 WHEN 'SALESMAN' THEN v_SAL+200
14 END ;
15 select ename,job,sal into v_ename,v_job,v_sal from emp where empno=#
16 dbms_output.put_line('JOB is: '||v_job||';'||'New salary is: '||v_OUT);
17 dbms_output.put_line(v_out);
18 end;
SQL> declare
2 v_ename emp.ename%type;
3 v_job emp.job%type;
4 v_sal emp.sal%type;
5 v_out varchar2(10);
6
7 begin
8 select ename,job,sal into v_ename,v_job,v_sal from emp where empno=&#
9 dbms_output.put_line('JOB is: '||v_job||';'||'Old salary is: '||v_sal);
10
11 v_out:=case v_job
12 when 'CLERK' THEN v_SAL+100
13 WHEN 'SALESMAN' THEN v_SAL+200
14 END ;
15 select ename,job,sal into v_ename,v_job,v_sal from emp where empno=#
16 dbms_output.put_line('JOB is: '||v_job||';'||'New salary is: '||v_OUT);
17
18 end;
SQL> declare
2 v_ename emp.ename%type;
3 v_job emp.job%type;
4 v_sal emp.sal%type;
5 v_out varchar2(10);
6
7 begin
8 select ename,job,sal into v_ename,v_job,v_sal from emp where empno=&#
9 dbms_output.put_line('JOB is: '||v_job||';'||'Old salary is: '||v_sal);
10
11 v_out:=case v_job
12 when 'CLERK' THEN v_SAL+100
13 WHEN 'SALESMAN' THEN v_SAL+200
14 END ;
15 select ename,job,sal into v_ename,v_job,v_sal from emp where empno=#
16 dbms_output.put_line('JOB is: '||v_job||';'||'New salary is: '||v_OUT);
17
18 end;
在sql中使用case:
SQL> select ename,job,sal,
2 CASE
3 WHEN JOB='CLERK' THEN SAL+100
4 WHEN JOB='MANAGER' THEN SAL+50
5 WHEN JOB='SALESMAN' THEN SAL+300
6 ELSE
7 SAL
8 END AS ADD_SAL
9 FROM EMP;
decode 语句:
SQL> select ename,sal,JOB,
2 decode (job ,'CLERK',SAL+100,
3 'SALESMAN',SAL+300,
4 'MANAGER',SAL+50,
5 SAL) ADD_SAL
6 FROM EMP;
3.循环语句:
案例:在表中插入数据
①loop基本循环
SQL> declare
2 v_num number :=1;
3 v_count number;
4
5 begin
6
7 loop
8 insert into t1 values (v_num,'tom'||v_num ,'ok');
9 v_num :=v_num + 1;
10
11 exit when v_num >10;
12
13 end loop;
14 commit;
15
16 select count(*) into v_count from t1;
17
18 dbms_output.put_line('T1 rows is :'||v_count);
19
20 end;
②for 循环:
SQL> declare
2 v_count number;
3
4 begin
5
6 for i in 1..10
7 loop
8 insert into t1 values (i,'tom'||i ,'ok');
9 end loop;
10 commit;
11
12 select count(*) into v_count from t1;
13
14 dbms_output.put_line('T1 rows is :'||v_count);
15
16 end;
③while 循环:
SQL> declare
2 v_num number := 1;
3 v_count number ;
4
5 begin
6
7 while v_num <=10 loop
8 insert into t1 values (v_num,'tom'||v_num ,'ok');
9 v_num := v_num + 1;
10 end loop;
11 commit;
12
13 select count(*) into v_count from t1;
14
15 dbms_output.put_line('T1 rows is :'||v_count);
16
17 end;
【PL/SQL练习】控制结构的更多相关文章
- 二十五、oracle pl/sql进阶--控制结构(分支,循环,控制)
一.pl/sql的进阶--控制结构在任何计算机语言(c,java,pascal)都有各种控制语句(条件语句,循环结构,顺序控制结构...),在pl/sql中也存在这样的控制结构.在本部分学习完成后,希 ...
- pl/sql的控制结构,分支、循环、控制
一.pl/sql的进阶--控制结构在任何计算机语言(c,java,pascal)都有各种控制语句(条件语句,循环结构,顺序控制结构...),在pl/sql中也存在这样的控制结构.在本部分学习完成后,希 ...
- PL/SQL程序控制结构及在PL/SQL中更改数据和管理事务
1.条件控制 A. IF条件分支语法: if (条件1) then 语句; elsif (条件2) then 语句; elsif (条件3) then 语句; else 语句; end if; B . ...
- pl/sql的介绍
为什么需要pl/sql编程? 因为使用纯的sql语句来操作数据库,有先天性的技术缺陷: 1.不能模块编程: 2.执行速度慢: 3.安全性有问题: 4.浪费带宽. pl/sql是什么? pl/sql(p ...
- PL/SQL之基础篇
参考文献:<Oracle完全学习手册>第11章 1.PL/SQL概述 PL/SQL(Procedure Language/Structuer Query Language)是Oracle对 ...
- oracle PL/SQL(procedure language/SQL)程序设计--控制结构(if else )
IF逻辑结构:IF-THEN-END IFIF-THEN-ELSE-END IFIF-THEN-ELSIF-END IF 语法 IF condition THEN statements;[ELSIF ...
- oracle pl/sql 控制结构(分支,循环,控制)
一.pl/sql的进阶--控制结构在任何计算机语言(c,java,pascal)都有各种控制语句(条件语句,循环结构,顺序控制结构...),在pl/sql中也存在这样的控制结构.在本部分学习完成后,希 ...
- pl/sql进阶一控制结构
在任何计算机语言(c,java,c#,c++)都有各种控制语句(条件语句,循环结构,顺序控制结构…),在pl/sql中也存在这样的控制结构. 在本部分学校完毕后,希望大家达到: 1)使用各种if语句 ...
- PL/SQL控制结构
顺序结构 按先后顺序 分支判断结构 IF语句 IF condition THEN statements; [ELSIF condition THEN statements;] [ELSE statem ...
- Oracle pl/sql编程值控制结构
以下测试案例均来自于scott方案,运行前请确保该方案解锁. 1.条件分支状语 pl/sql中提供了三种条件分支状语,分别是: if then if then else if then ...
随机推荐
- java获取url中的参数
获取地址栏中的url中的userName的值 String userName=new String(request.getParameter("userName")); 获取中文的 ...
- 如何添加WebService调用时的用户认证
场景: 当把发布好的WebService地址或WSDL提供给调用方时,需要对方先进行身份的认证通过后才允许接口的进步访问.而不是公开的谁都可以调用. 解决: 1.在IIS中设置对应网站的目录访问权限. ...
- BeX5平台简明部署过程
http://wex5.com/cn/concise-deployment/ BeX5平台简明部署过程 该文章主要介绍BeX5平台开发完成后,资源部署至正式环境的过程. 一. 获取BeX5企业快速开发 ...
- Highcharts 功能强大、开源、美观、图表丰富、兼容绝大多数浏览器的纯js图表库
http://www.hcharts.cn/index.php 暂无介绍,等待后续补充
- java中用中国网建提供的SMS短信平台发送短信
接下来的项目需求中提到需要短信发送功能,以前没有做过,因此便在网上搜了一下.大体上说的都是有三种方法,分别是sina提供的webservice接口.短信mao和中国网建提供的SMS短信平台. 这三种方 ...
- Oracle-单表合并列
表基本结构 合并列 select t.student,decode(t.java,'','','java') 科目, t.java from student t union select t.stud ...
- (C/C++) Interview in English. - Memory Allocation/Deallocation.
Q: What is the difference between new/delete and malloc/free? A: Malloc/free do not know about const ...
- Apache HttpClient
HpptClient特性 1. 基于标准.纯净的java语言.实现了Http1.0和Http1.1 2. 以可扩展的面向对象的结构实现了Http全部的方法(GET, POST, PUT, DELETE ...
- BIP_开发案例10_BI Publisher报表国际化多语言的实现(案例)
2014-12-26 Created By BaoXinjian
- hdu 1536 S-Nim(sg函数模板)
转载自:http://blog.csdn.net/sr_19930829/article/details/23446173 解题思路: 这个题折腾了两三天,参考了两个模板,在这之间折腾过来折腾过去,终 ...