/* *编写控制结构 */ --条件分支语句 --简单条件判断 DECLARE v_sal NUMBER(6,2); BEGIN select sal into v_sal from emp where lower(ename)=lower('&name'); if v_sal<2000 then update emp set sal=v_sal+200 where lower(ename)=lower('&name'); end if; end; select * from emp; --二重条件分支 --如果雇员补助不是0,则在原来的基础上增加100元,如果补助为0或NULL时,则设置其补助为200元 DECLARE v_comm NUMBER(6,2); BEGIN select comm into v_comm from emp where empno=&no; if v_comm <> 0 then update emp set comm=v_comm+100 where empno=&no; else update emp set comm=200 where empno=&no; end if; end; --多重条件分支 DECLARE v_job VARCHAR2(10); v_sal NUMBER(6,2); BEGIN SELECT JOB,SAL INTO v_job,v_sal from emp where empno=&no; if upper(v_job)=upper('president') then update emp set sal=v_sal+1000 where empno=&no; elsif upper(v_job)=upper('manager') then update emp set sal=v_sal+500 where empno=&no; else update emp set sal=v_sal+200 where empno=&no; end if; END; select * from emp; --CASE语句 --在CASE语句中使用单一选择符进行等值比较 DECLARE v_deptno emp.deptno%TYPE; begin v_deptno:=&no; case v_deptno when 1 then update emp set comm=100 where deptno=v_deptno; when 2 then update emp set comm=80 where deptno=v_deptno; when 3 then update emp set comm=50 where deptno=v_deptno; else dbms_output.put_line('不存在该部门'); end case; end; select * from emp; --在CASE语句中使用多种条件比较 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; case when v_sal<1000 then update emp set comm=100 where ename=v_ename; when v_sal<2000 then update emp set comm=90 where ename=v_ename; when v_sal<6000 then update emp set comm=50 where ename=v_ename; end case; end; select * from emp; --循环语句 --基本循环 create table temp(cola int); DECLARE i INT:=1; begin LOOP insert into temp values(i); exit when i=10; i:=i+1; end loop; end; select * from temp; --WHILE循环 DECLARE i INT:=1; begin while i<=10 loop insert into temp values(i); i:=i+1; end loop; end; --FOR循环 begin for i in reverse 1..10 LOOP insert into temp values(i); end loop; end; --嵌套循环和标号 DECLARE result int; BEGIN <<outer>> for i in 1..100 loop <<inter>> for j in 1..100 loop result:=i*j; exit outer when result=1000; exit when result=500; end loop inner; dbms_output.put_line(result); end loop outer; dbms_output.put_line(result); end; --顺序控制语句 --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; --NULL --NULL语句不会执行任何操作,并且会直接将控制传递到下一条语句 --使用NULL语句的主要好处是可以提高PL/SQL程序的可读性 --如果雇员工资低于300,则将其补助设置为工资的10%,如果雇员工资高于3000,则不会执行任何操作(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<300 then update emp set comm=sal*0.1 where ename=v_ename; else null; end if; end; select * from emp;
相关推荐
第13章 编写控制结构 第14章 使用复合数据类型 第15章 使用游标 第16章 异常处理 . 第17章 本地动态sql 第18章 pl/sql过程 第19章 pl/sql函数 第20章 pl/sql包 第21章 触发器 第22章 使用对象...
编写控制结构 7.1 条件分支语句 7.2 CASE语句 7.3 循环语句 7.4 顺序控制语句 7.5 习题 第8章 使用复合数据类型 8.1 PL/SQL记录 8.1.1 定义PL/SQL记录 8.1.2 使用PL/SQL...
第13章 编写控制结构 第14章 使用复合数据类型 第15章 使用游标 第16章 异常处理 . 第17章 本地动态sql 第18章 pl/sql过程 第19章 pl/sql函数 第20章 pl/sql包 第21章 触发器 第22章 使用对象...
第13章编写控制结构 第14章使用复合数 据类型 第15章使用游标 第16章异常处理 . 第17章本地动态SQL 第18章PL/SQL过程 第19章PL/SQL函数 第20章PL/SQL包 第21章触发器 第22章使用对象类型 第四...
第13章 编写控制结构 第14章 使用复合数据类型 第15章 使用游标 第16章 异常处理 . 第17章 本地动态sql 第18章 pl/sql过程 第19章 pl/sql函数 第20章 pl/sql包 第21章 触发器 第22章 使用对象...
第13章 编写控制结构 第14章 使用复合数据类型 第15章 使用游标 第16章 异常处理 . 第17章 本地动态sql 第18章 pl/sql过程 第19章 pl/sql函数 第20章 pl/sql包 第21章 触发器 第22章 使用对象...
本书包括:PL/SQL 综述、PL/SQL 开发工具、PL/SQL 基础、使用SQL语句、SQL函数、访问Oracle 、编写控制结构、使用复合数据类型、使用游标、处理例外、开发子程序等内容。 作者:王海亮 出版社:中国水利水电出版社
他认为对于SQL的学习是永无止境的,相信每一个查询Oracle数据库的人都需要精通SQL语言,才能写出高效的查询。他参与本书的编写就是为了帮助别人实现这一目标。 目录 封面 -11 封底 -10 扉页 -9 版权 -8 版权声明 -7...
4.1.6 PL/SQL语句控制结构 4.1.7 PL/SQL表达式 4.2 PL/SQL的游标 4.2.1 基本原理 4.2.2 显式游标 4.2.3 隐式游标 4.2.4 游标属性 4.2.5 游标变量 4.3 过程 4.3.1 创建过程 4.3.2 调用过程 ...
4.1.6 PL/SQL语句控制结构 4.1.7 PL/SQL表达式 4.2 PL/SQL的游标 4.2.1 基本原理 4.2.2 显式游标 4.2.3 隐式游标 4.2.4 游标属性 4.2.5 游标变量 4.3 过程 4.3.1 创建过程 4.3.2 调用过程 4.3.3 删除...
4.1.6 PL/SQL语句控制结构 4.1.7 PL/SQL表达式 4.2 PL/SQL的游标 4.2.1 基本原理 4.2.2 显式游标 4.2.3 隐式游标 4.2.4 游标属性 4.2.5 游标变量 4.3 过程 4.3.1 创建过程 4.3.2 调用过程 4.3.3 删除过程 4.3.4 ...
4.1.6 PL/SQL语句控制结构 4.1.7 PL/SQL表达式 4.2 PL/SQL的游标 4.2.1 基本原理 4.2.2 显式游标 4.2.3 隐式游标 4.2.4 游标属性 4.2.5 游标变量 4.3 过程 4.3.1 创建过程 4.3.2 调用过程 4.3.3 删除过程 4.3.4 ...
6.1 控制结构,块和复合语句 6.2 决策--条件结构 6.2.1 if和unless语句 6.2.2 unless语句结构 6.3 循环 6.3.1 while循环 6.3.2 until循环 6.3.3 for循环 4.5.2 values函数 4.5.3 each函数...
热门Tag JAVA C++ linux C# 教程 C语言 android 源码 PDF 编程 sql c Windows matlab ORACLE 源代码 api 中文 数据库 arm JavaScript 破解 数据结构 vc visual jQuery 计算机 答案 单片机 php JSP mfc .NET 中文版 ...
Oracle编程的编码规范及命名规则 Oracle数据库字典介绍 0RACLE的字段类型 事务 CMT DEMO(容器管理事务演示) 事务隔离性的一些基础知识 在组件之间实现事务和异步提交事务(NET2.0) 其它 在.NET访问MySql数据库时的...