Oracle 学习:PL/SQL循序渐进全面学习教程
课程十二 编写控制结构语句
本课重点:
1、结构控制的的用途和类型
2、IF 结构
3、构造和标识不同的循环
4、使用逻辑表
5、控制流和嵌套
注意:以下实例中标点均为英文半角
一、控制执行流
可以是分支和循环:IF THEN END IF
IF condition THEN
statements;
[ELSIF condition THEN
statements;]
[ELSE
statements;]
END IF;
例子:IF V_ENAME='OSBORNE' THEN
V_MGR:=22;
END IF;
这里我们可以注意,PLSQL和C语言或JAVA在条件上的不同,=代表关系运算,而:=代表赋值。
看一个函数:
create FUNCTION calc_val
(v_start IN NUMBER)
RETURN NUMBER
IS
BEGIN
IF v_start > 100 THEN
RETURN (2 * v_start);
ELSIF v_start >= 50 THEN
RETURN (.5 * v_start);
ELSE
RETURN (.1 * v_start);
END IF;
END calc_val;
现在,虽然我们尚未讲解CREATE 函数或过程,但可以看到IF 条件在其中的作用。
二、注意LOGIC TABLE中的逻辑对应关系
1、NOT、AND、OR
2、任何表达式中含有空值结果都为 NULL
3、连接字符串中含有空值会把NULL作为 EMPTY STRING
declare
v_deptno dept.deptno%type;
v_loc dept.loc%type;
V_FLAG BOOLEAN ;
V_REC BOOLEAN :=FALSE; --此值改为TRUE、NULL、FALSE进行不同的比较
V_AVA BOOLEAN:=NULL;
begin
V_FLAG:=V_REC AND V_AVA;
IF V_FLAG=TRUE THEN
DBMS_OUTPUT.PUT_LINE ('TRUE');
ELSIF V_FLAG=FALSE THEN
DBMS_OUTPUT.PUT_LINE ('FALSE');
ELSE
DBMS_OUTPUT.PUT_LINE ('NULL');
END IF;
end;
/
值得注意的是:NULL AND FALSE ---> FALSE
这是在实践中总结出来的。
三、基本循环基础:
1、LOOP
statement1;
statement2;
. . .
EXIT [WHEN condition];
END LOOP;
v_ord_id s_item.ord_id%TYPE := 101;
v_counter NUMBER (2) := 1;
BEGIN
. . .
LOOP
INSERT INTO s_item (ord_id, item_id)
VALUES (v_ord_id, v_counter);
v_counter := v_counter + 1;
EXIT WHEN v_counter > 10;
END LOOP;
相关文档:
课程 二 PL/SQL 查询行函数
本课重点:
1、掌握各种在PL/SQL中可用的ROW函数
2、使用这些函数的基本概念
3、SELECT语句中使用函数
4、使用转换函数
注意:以下实例中标点均为英文半角
一、FUNCTION的作用:
进行数据计算,修改 ......
课程六 运行时应用变量
本课重点:
1、创建一个SELECT语句,提示USER在运行时先对变量赋值。
2、自动定义一系列变量,在SELECT运行时进行提取。
3、在SQL PLUS中用ACCEPT定义变量
注意:以下实例中标点均为英文半角
一、概述:
变量可 ......
课程十一 与ORACLE SERVER交互
本课重点:
1、在PLSQL中成功的写SELECT语句
2、动态声明PLSQL变量类型与SIZE
3、在PLSQL中写DML语句
4、在PLSQL中控制事务
5、确定DML操作的结果
注意:以下实例中标点均为英文半角
一、PLSQL中的SQL语句:
SELECT、DML、CO ......