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;
相关文档:
课程四 组函数
本课重点:
1、了解可用的组函数
2、说明每个组函数的使用方法
3、使用GROUP BY
4、通过HAVING来限制返回组
注意:以下实例中标点均为英文半角
一、概念:
组函数是指按每组返回结果的函数。
组函数可以出现在SELECT和HAVING 字段中。
GROUP ......
课程七 其他数据库对象
SEQUENCE
创建实例:
SQL> CREATE SEQUENCE s_dept_id
2 INCREMENT BY 1
3 START WITH 51
4 MAXVALUE 9999999
5 NOCACHE
6 NOCYCLE;
Sequence created.
1、NEXTVAL和CURRVAL的 ......
课程八 用户访问控制
本课重点:
1、创建用户
2、创建角色来进行安全设置
3、使用GRANT或REVOKE 来控制权限
注意:以下实例中标点均为英文半角
一、概述:
ORACLE通过用户名和密码进行权限控制。
数据库安全:系统安全和数据安全
系统权限:使用户可 ......
课程十 写执行语句
本课重点:
1、了解PLSQL执行区间的重要性
2、写执行语句
3、描述嵌套块的规则
4、执行且测试PLSQL块
5、使用代码惯例
注意:以下实例中标点均为英文半角
一、PLSQL 块的语法规则:
1、语句可以跨跃几行。
2、词汇单元可以包 ......