设为首页 加入收藏

TOP

PL/SQL中流程控制语句和Oracle临时表(一)
2014-11-24 02:35:16 来源: 作者: 【 】 浏览:8
Tags:PL/SQL 流程 控制 语句 Oracle 临时

PL/SQL中流程控制语句和 Oracle临时表
[sql]
create global temporary table temp_dept
(dno number,
dname varchar2(10))
on commit delete rows;
insert into temp_dept values(10,'ABC');
drop table temp_dept
--Oracle的临时表和SQL Server的临时表概念不一样。
--SQL Server的临时表,是“临时”创建的表,用完就没有这个表了。
--而Oracle的“临时”表,实际上,表是“永久”的,数据是“临时”的。
--条件控制语句
--1、只有IF的条件控制语句
IF concition THEN
STATEMENTS;
END IF; www.2cto.com
--请看以下示例:
DECLARE
salaryAVG number(7,2);
empSalary number(7,2);
BEGIN
SELECT AVG(SAL) INTO salaryAVG FROM scott.emp;
SELECT SAL INTO empSalary FROM scott.emp WHERE EMPNO=&eno;
IF empSalary>salaryAVG THEN
DBMS_OUTPUT.PUT_LINE('该职工工资超过了平均线'||salaryAVG);
END IF;
END;
--2、IF、ELSE语句
IF condition THEN
STATEMENTS;
ELSE
STATEMENTS;
END IF;
--请看以下示例:
DECLARE
salaryAVG number(7,2);
empSalary number(7,2);
BEGIN www.2cto.com
SELECT AVG(SAL) INTO salaryAVG FROM scott.emp;
SELECT SAL INTO empSalary FROM scott.emp WHERE EMPNO=&eno;
IF empSalary>salaryAVG THEN
DBMS_OUTPUT.PUT_LINE('该职工工资超过了平均线'||salaryAVG);
ELSE
DBMS_OUTPUT.PUT_LINE('该职工工资没有超过平均线'||salaryAVG);
END IF;
END;
--3、IF ESLEIF ELSE语句
IF condition THEN
STATEMENTS;
ELSIF condition THEN
STATEMENTS;
ELSE
STATEMENTS;
END IF;
--请看以下示例:
DECLARE
empSalary number(7,2);
BEGIN
SELECT SAL INTO empSalary FROM scott.emp WHERE EMPNO=&eno;
IF empSalary<2000 THEN
DBMS_OUTPUT.PUT_LINE('需交税0元');
ELSIF empSalary<4000 THEN
DBMS_OUTPUT.PUT_LINE('需交税'||(empSalary*0.15-175)||'元');
ELSE
DBMS_OUTPUT.PUT_LINE('需交税'||(empSalary*0.25-375)||'元');
END IF;
END;
www.2cto.com
--4、CASE语句
--单一值进行比较:
CASE selector
WHEN expression1 THEN result1;
WHEN expression2 THEN result2;
WHEN expression3 THEN result3;
ELSE result4;
END CASE;
--请看以下示例:
DECLARE
eno NUMBER(2);
BEGIN
eno:=&no;
CASE eno
WHEN 10 THEN DBMS_OUTPUT.PUT_LINE('部门1');
WHEN 20 THEN DBMS_OUTPUT.PUT_LINE('部门2');
WHEN 30 THEN DBMS_OUTPUT.PUT_LINE('部门3');
ELSE DBMS_OUTPUT.PUT_LINE('没有该部门');
END CASE;
END;
--多重条件进行比较:
CASE www.2cto.com
WHEN expression1 THEN result1;
WHEN expression2 THEN result2;
WHEN expression3 THEN result3;
ELSE result4;
END CASE;
--二、循环控制语句
--1、LOOP循环
LOOP
STATEMENTS;
END LOOP;
--示例1:
DECLARE
a int;
BEGIN
a:=0;
LOOP
IF a=10 THEN
EXIT;
END IF;
DBMS_OUTPUT.PUT_LINE(a);
a:=a+1;
END LOOP;
END;
--示例2:
DECLARE
a int;
BEGIN
a:=0;
LOOP
EXIT WHEN a=10;
DBMS_OUTPUT.PUT_LINE(a);
a:=a+1;
END LOOP;
END;
www.2cto.com
--2、WHILE循环
--示例1:
DECLARE
a int;
BEGIN
a:=0;
WHILE a<10 LOOP
DBMS_OUTPUT.PUT_LINE(a);
a:=a+1;
END LOOP;
END;
--3、FOR循环
--示例1:
BEGIN
FOR a IN 0..9 LOOP
DBMS_OUTPUT.PUT_LINE(a);
END LOOP;
END;
--4、多重循环与标签
--示例1:
DECLARE
result INT;
BEGIN
<>
FOR i IN 1..10 LOOP
<>
FOR j IN 1..10 LOOP
result:=i*
首页 上一页 1 2 下一页 尾页 1/2/2
】【打印繁体】【投稿】【收藏】 【推荐】【举报】【评论】 【关闭】 【返回顶部
分享到: 
上一篇oracleCONNECTBYPRIOR叶子节点查.. 下一篇如何使用orachk工具

评论

帐  号: 密码: (新用户注册)
验 证 码:
表  情:
内  容: