Oracle 学习:PL/SQL循序渐进全面学习教程
课程十三 使用组合数据类型* 游标操纵数据
本课重点:
1、创建用户自定义的PLSQL记录
2、利用%ROWTYPE属性来创建记录
3、创建PLSQL表
4、描述记录、表、记录的表之间的区别
注意:以下实例中标点均为英文半角
一、合成数据类型
1、类型分为PLSQL记录和PLSQL表
2、包含内部组件
3、可重用
二、PLSQL记录
与3GL中的记录结构相似
与数据库表是两回事
是一个方便的途径FETCH一些行from一个表来进行相关处理。
标准语法格式我们暂不介绍,因为每本书上均有。
看例子:
declare
vjob varchar(9);
v_count number:=0;
vtotal date:=sysdate +7;
c_tax constant number(3,2):=8.25;
v_valid boolean not null:=true;
ttt vtotal%type;
type emp_record_type is record
(empno number not null:=100,
ename emp.ename%type,
job emp.job%type);
emp_record emp_record_type;
begin
--select sysdate into vtotal from dual;--体会有无此句与结果的影响
dbms_output.put_line (vtotal);
end;
/
主要看TYPE RECORD出现的位置。每一个例子都是可以成功执行的。
我们也可以利用原有的表结构:
DECLARE
EMP_RECORD EMP%ROWTYPE;
游标操纵数据
PLSQL游标提供了一种从数据库提取多行数据,然后对每行数据进行单独处理的方法。
一、两种游标:
显式游标
隐式游标
二、显式游标:操纵步骤如下:声明游标、打开游标、从游标中取回数据、关闭游标
三、声明游标:
DECLARE CURSOR_NAME
IS
SELECT STATMENT
能够控制游标的,唯一参数是INIT.ORA中的OPEN_CURSORS,我原来以为是客户端最多可以打开多少个游标,但有
本书上讲这是用于管理游标的内存的数量。
DECLARE
CURSOR C_NAME
IS
SELECT ENAME from EMP
WHERE DEPTNO IN (SELECT DEPTNO from DEPT
WHERE CITY_ID=‘BJ’)
--- 说明游标可以用子查询
四、打开游标
OPEN CURSOR_NAME;
这时游标将它的指针指向活动集的开始,指针指向第一条记录的前面是因为它还没有执行FETCH命令。如果试图打
开一个已经打开的游标,将出错:
ORA-06511:PL/SQL:CURSOR ALREADY OPEN
我们可
相关文档:
课程 二 PL/SQL 查询行函数
本课重点:
1、掌握各种在PL/SQL中可用的ROW函数
2、使用这些函数的基本概念
3、SELECT语句中使用函数
4、使用转换函数
注意:以下实例中标点均为英文半角
一、FUNCTION的作用:
进行数据计算,修改 ......
课程四 组函数
本课重点:
1、了解可用的组函数
2、说明每个组函数的使用方法
3、使用GROUP BY
4、通过HAVING来限制返回组
注意:以下实例中标点均为英文半角
一、概念:
组函数是指按每组返回结果的函数。
组函数可以出现在SELECT和HAVING 字段中。
GROUP ......
课程五 子查询
本课重点:
1、在条件未知的情况下采用嵌套子查询
2、用子查询做数据处理
3、子查询排序
注意:以下实例中标点均为英文半角
一、概述:
子查询是一种SELECT句式中的高级特性,就是一个SELECT语句作为另一个语句的一个段。我们可以利用子查询来 ......
课程八 用户访问控制
本课重点:
1、创建用户
2、创建角色来进行安全设置
3、使用GRANT或REVOKE 来控制权限
注意:以下实例中标点均为英文半角
一、概述:
ORACLE通过用户名和密码进行权限控制。
数据库安全:系统安全和数据安全
系统权限:使用户可 ......