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、在条件未知的情况下采用嵌套子查询
2、用子查询做数据处理
3、子查询排序
注意:以下实例中标点均为英文半角
一、概述:
子查询是一种SELECT句式中的高级特性,就是一个SELECT语句作为另一个语句的一个段。我们可以利用子查询来 ......
课程六 运行时应用变量
本课重点:
1、创建一个SELECT语句,提示USER在运行时先对变量赋值。
2、自动定义一系列变量,在SELECT运行时进行提取。
3、在SQL PLUS中用ACCEPT定义变量
注意:以下实例中标点均为英文半角
一、概述:
变量可 ......
刚刚高中的一位同学问我一道笔试题:请简述SQL注入式攻击及其原理。
(Q:攻击?难道是做黑可吗??)
可以把这种行为理解成黑客行径,因为这样做的目的就是“非法获取”。
(Q:怎么做?)
可以按照我下面的步骤一步一步来,大家也就当一回“黑客”了。(P.S. 这可是我“独家研制” ......
课程十二 编写控制结构语句
本课重点:
1、结构控制的的用途和类型
2、IF 结构
3、构造和标识不同的循环
4、使用逻辑表
5、控制流和嵌套
注意:以下实例中标点均为英文半角
一、控制执行流
可以是分支和循环:IF THEN END IF
IF condition THEN ......