/* *编写控制结构 */ --条件分支语句 --简单条件判断 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;
相关推荐
PL/SQL(Procedural Language/SQL)是Oracle数据库特有的编程语言,结合了SQL的查询功能和过程性编程语言的控制结构。通过PL/SQL,开发者可以编写存储过程、函数、触发器等,实现更复杂的业务逻辑。学习PL/SQL主要...
PL/SQL(Procedural Language/Structured Query Language)是Oracle数据库提供的一个过程化语言,它结合了SQL的查询功能和传统的过程式编程语言的控制结构,使得数据库管理和应用程序开发更加高效和灵活。...
第13章 编写控制结构 第14章 使用复合数据类型 第15章 使用游标 第16章 异常处理 . 第17章 本地动态sql 第18章 pl/sql过程 第19章 pl/sql函数 第20章 pl/sql包 第21章 触发器 第22章 使用对象...
《精通Oracle PL/SQL》这本书深入探讨了这个语言的各个方面,旨在帮助读者掌握其精髓并提升在数据库开发中的效率。书中提供的源码示例是学习和理解PL/SQL语法、功能以及最佳实践的重要资源。 在"2174_...
《精通Oracle10g SQL/PL编程》是一本专为数据库开发者和管理员设计的专业书籍,旨在深入探讨Oracle10g数据库管理系统中的SQL和PL/SQL编程技术。这本书以通俗易懂的方式,为初学者提供了全面的学习路径,同时也为有...
《精通Oracle10编程》是一本深入探讨Oracle数据库10g版本编程的参考资料,适合对数据库有基础了解并希望进一步提升Oracle技术的读者。Oracle作为全球广泛使用的大型关系型数据库管理系统,其10g版本在功能和性能上都...
《精通Oracle SQL(第2版)》是一本深入解析Oracle数据库查询语言的专业书籍,由Oracle ACE和OakTable团队的专家共同撰写,集成了他们的丰富经验和专业知识。这本书旨在帮助读者掌握Oracle SQL的高级技巧,提升在...
通过"精通Oracle10g PLSQL编程"的学习,你将能够熟练地使用PLSQL进行数据库交互,编写高效、稳定的数据库应用,为企业的数据管理与业务发展提供强有力的支持。无论你是初学者还是有一定经验的DBA,这份资料都将帮助...
本教程《精通Oracle10g PL_SQL编程》旨在帮助学习者深入理解并熟练掌握Oracle 10g中的PL/SQL编程技术。 1. PL/SQL基础 - PL/SQL的结构:包括声明部分、执行部分和异常处理部分。 - 变量和常量:定义、声明及使用...
学习“精通ORACLE 10G SQL和PL_SQL”不仅需要理解基本语法,还需要掌握优化技巧、并发控制、安全性策略以及数据库性能监控等方面的知识。这将有助于你成为一位全面的Oracle数据库管理员或开发者,能够高效地管理和...
《精通Oracle 10g PL/SQL编程》是一本针对Oracle数据库系统中PL/SQL编程语言的深度解析书籍。Oracle 10g是Oracle数据库的一个重要版本,它提供了丰富的功能和改进,使得PL/SQL这一数据库编程语言在性能、可维护性和...
### 精通Oracle 10g PL/SQL编程学习笔记 #### 一、PL/SQL综述 **1.1 PL/SQL的功能与作用** PL/SQL (Procedural Language for SQL) 是一种专门为Oracle数据库设计的过程化语言,它结合了SQL的数据处理能力与过程化...
本文旨在深入解析“精通Oracle 10g PL/SQL编程”这一主题,不仅涵盖基础概念,还将探讨其高级应用,为读者提供一个全面的学习框架。 ### Oracle 10g概述 Oracle 10g(Generation 10)是Oracle公司推出的一款企业级...
第13章 编写控制结构 第14章 使用复合数据类型 第15章 使用游标 第16章 异常处理 . 第17章 本地动态sql 第18章 pl/sql过程 第19章 pl/sql函数 第20章 pl/sql包 第21章 触发器 第22章 使用对象...
PL/SQL,全称为Procedural Language/Structured Query Language,是Oracle数据库系统中的过程化语言,它结合了SQL的查询功能和传统编程语言的控制结构,使得在数据库管理与应用开发中更加高效和灵活。 在Oracle 10g...
根据提供的文件标题、描述、标签以及部分内容,我们可以推断出这份文档主要关注的是Oracle 10g中的PL/SQL编程技术。以下是对该主题的一些重要知识点的总结与扩展。 ### Oracle 10g简介 Oracle 10g是Oracle公司发布...