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
我们可
相关文档:
课程三 从多个表中提取数据
本课重点:
1、SELECT from 多个表,使用等连接或非等连接
2、使用外连接OUTER JOIN
3、使用自连接
注意:以下实例中标点均为英文半角
一、连接的概念:
是指一个从多个表中的数据进行的查询。连接一般使用表的主键和外键。
连接类型:
......
课程七 其他数据库对象
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、了解基本的PLSQL块和区域
2、描述变量在PLSQL中的重要性
3、区别PLSQL与非PLSQL变量
4、声明变量
5、执行PLSQL块
注意:以下实例中标点均为英文半角
一、概述:
1、PLSQL 块结构:
DECLARE --- 可选
变量声 ......
课程十一 与ORACLE SERVER交互
本课重点:
1、在PLSQL中成功的写SELECT语句
2、动态声明PLSQL变量类型与SIZE
3、在PLSQL中写DML语句
4、在PLSQL中控制事务
5、确定DML操作的结果
注意:以下实例中标点均为英文半角
一、PLSQL中的SQL语句:
SELECT、DML、CO ......