在 PL/SQL 语句块中变量的数据是可变以 在变量声明时必须对它加以定义 如有必
须 还要进行初始化工作 下例中定义了一组在 PL/SQL 的 DECLARE 部分的变量
DECLARE
owner char(10);
tablename char(30);
bytes number(10);
today date
分析
DECLARE 部分不能自动运行 DECLARE 部分以 DECLARE 语句开头 每一个变量
382
…………………………………………………………Page 383……………………………………………………………
SQL 21 日自学通(V1。0) 翻译人 笨猪
占一行 注意在每一个定义的变量后边都有一个分号
在 DECLARE 部分也可以对变量进行初始化工作 例如
DECLARE
customer char(30);
fiscal_year number(2) := "97";
你可以使用 =符号来进行初始化工作 或者说是赋给它一个初值 对于被定义为 NOT
NULL 的变量你必须要赋初值
DECLARE
customer char(30);
fiscal_year number(2) NOT NULL := "97";
分析
NOT NULL 子句在这里的作用与它在 CREATE TABLE 中所起的作用类似
常量定义
定义常量的方法与定义变量相同 但是常量的数值是静态的 他们不能改变 在上个
例子中 fiscal_year 可能是常量
注 在每一个变量的定义都必须以分号结束
指针定义
指针是 PL/SQL 中的另一种类型的变量 在你通常所认为的变量中保存的是数值 而
指针型变量则指向了查询结果中的某一行数据 在查询的结果有多个时 为了分析数据你
需要在每个记录之间进行翻阅 在查看 PL/SQL 块中的查询结果时 它使用指针来指向返
回的每一行 下边是一个在 PL/SQL 语句块中定义指针的例子
INPUT
DECLARE
cursor employee_cursor is
select * from employees;
指针与视图类似 通过在 PROCDURE 部分使用 LOOP 循环 你可以翻阅指针 这
383
…………………………………………………………Page 384……………………………………………………………
SQL 21 日自学通(V1。0) 翻译人 笨猪
项技术曾简要地提到过
%TYPE 属性
%TYPE 可以返回表中给定列的变量属性 除了查看在 PL/SQL 中的数据类型定义代码
你可以使用%TYPE 来保持在你的块中的代码的一致性
INPUT
DECLARE
cursor employee_cursor is
select emp_id; emp_name from employees;
id_num employees。emp_id%TYPE;
name employees。emp_name%TYPE;
分析
在这个例子中表中 ID_NUM 变量与 EMP_ID 变量具有相同的数据类型 %TYPE 所定
义的变量 NAME 具有与 EMPLOYEES 中的 emp_name 具有相同的数据类型
%ROWTYPE 属性
变量不仅限于单一的数值 如果你所定义的变量与一个指针相关联的话 你可以使用
%ROWTYPE 属性来声明变量与保证它与游标所在行的类型相同 在 ORACLE 的词典中
%ROWTYPE
INPUT
DECLARE
cursor employee_cursor is
select emp_id; emp_name from employees;
employee_record employee_cursor%ROWTYPE
分析
在上例中定义了一个叫 employee_record 的变量 %ROWTYPE 定义了这个变量的使它
与 employee_cursor 所在行的数据类型相同 这个%ROWTYPE 属性定义的变量也称为集合
变量
384
…………………………………………………………Page 385……………………………………………………………
SQL 21 日自学通(V1。0) 翻译人 笨猪
%ROWCOUNT 属性
在 PL/SQL 中%ROWCOUNT 属性可以保证在特定的 SQL 语句块中的游标行数
INPUT
DECLARE
cursor employee_cursor is
select emp_id; emp_name from employees;
records_processed := employee_cursor%ROWCOUNT;
分析
在上例中变量 records_processed 将会返回 PL/SQL 语句所访问的 employee_cursor 的行
数
警告 在定义变量的时候要小心以访止它和表的名字相冲突 例如 如果你定义的变量与
你的 PL/SQL 语句块中所访问的表的名字是相同的 那么变量的名字会优先于表的名字
Procdure 部分
PROCDURE 部分是 PL/SQL 语句块中的必须部分 在这一部分将会使用变量和用户指
针来操作数据库中的数据 PROCDURE 部分是一个块的主要部分 它包括条件语句和 SQL
语句
BEGIN END
在一个语句块中 BEGIN 标明了一个过程的开始 与此类似 END 则标明了一个语
句块的结束 下边的例子显示了一个 PROCDURE 部分的基本结构
语法
BEGIN
open a cursor;
condition1
statement1
condition2
statement2
385
…………………………………………………………Page 386……………………………………………………………
SQL 21 日自学通(V1。0) 翻译人 笨猪
condition3
statement3
close the cursor
END
指针控制命令
现在你将学习如何在 PL/SQL 的语句块中定义一个指针 你需要知道如何来访问一个
定义过的指针 这一部分诠释了基本的指针控制命令 DECLARE OPEN FETCH 和
CLOSE
DECLARE
在今天的早些时候你已经学习了如何在 DELCARE 部分定义一个指针 DECLARE 语
句包括下列指针控制命令
OPEN
现在你已经定义了一个指针 但是你应该如何去使用它呢 如果你不使用打开这本书
你无法看到它的内容的 同样 如果你不使用 OPEN 命令来打开一个指针你也将无法使用
它 例如
语法
BEGIN
open employee_cursor;
statement1;
statement2;
。
END
小说推荐
- SQL语言艺术(PDF格式)
- -Page 1-SQLSSQQLL语言艺术内容介绍本书分为12章,每一章包含许多原则或准则,并通过举例的方式对原则进行解释说明。这些例子大多来自于实际案例,对九种SQL经典查询场景以及其性能影响讨论,非常便于实践,为你数据库应用维护人员阅读。资深 SQL 专家 Stéphane Faroult倾力打
- 最新章:第27章
- oracle从入门到精通(PDF格式)
- -Page 1-Oracle 从入门到精通-Page 2-资源来自网络,仅供学习 Oracle 从入门到精通一、SQL 8
- 最新章:第37章
- VB2008从入门到精通(PDF格式英文版)
- -Page 1(R)The eXperT’s Voice inBeginningVB 2008From Novice to ProfessionalChristian Gross-Page 2-Page 3-Beginning VB 2008From Novice to Professional■C
- 最新章:第214章
- C语言游戏编程从入门到精通(PDF格式)
- -Page 1-Page 2-Page 3-Page 4-Page 5-Page 6-Page 7-Page 8-Page 9-Page 10-Page 11-Page 12-Page 13-Page 14
- 最新章:第4章
- JMS简明教程(PDF格式)
- -Page 1-JMS1.1规范中文版卫建军2007‐11‐22-Page 2
- 最新章:第28章
- C语言实例教程(PDF格式)
- -Page 1-前 言Visual C+是开发运行于Windows 95和Windows NT环境下的Win32应用程序的可视化编程工具中最重要的成员之一,它为软件开发人员提供了完整的编辑、编译和调试工具和建立于Win32 API(ApplicationProgramming Interface)基
- 最新章:第143章
- 深入浅出MFC第2版(PDF格式)
- -Page 1-Page 2-山高月小山高月小 水落石出水落石出山高月小山高月小 水落石出水落石出-Page 3-深入淺出MFC(第版 使用Visual C 5.0 MFC 4.2)Dissecting MFC(Second Edition Using Visual C 5.0 MFC 4.2)侯俊
- 最新章:第309章
- 软件工程实践者的思想(PDF格式)
- -Page 1-大 道 至 简—软件工程实践者的思想周爱民(Aimingoo 著-Page 2-序2004 年 11 月初爱民(Aimingoo)第一次把他的书稿给我,我翻看了一下,第一反应讲的是感想。这不错,在技
- 最新章:第26章
- 电子电路大全(PDF格式)
- -Page 1-电力生产人员技能培训电路基础部分电路基础部分电电路路基基础础部部分分-Page 2-一、电路的基本概念和基本定律-Page 3-考试点1o 1、掌握电阻、独立电压源、独立电流源、11受控源、电容、电感、耦合电感、理想变压器诸元件的定义、性质2o 2、掌握电流、电压参考方向的概念223
- 最新章:第353章