没有合适的资源?快使用搜索试试~ 我知道了~
首页plsql oracle 详细 教程
资源详情
资源评论
资源推荐
PL/SQL 程序设计
第一章 PL/SQL 程序设计简介
PL /SQL是一种高级数据库程序设计语言,该语言专门用于在各种环境下对ORACLE
数据库进行访问。由于该语言集成于数据库服务器中,所以PL/SQL代码可以对数据进行
快速高效的处理。除此之外,可以在ORACLE数据库的某些客户端工具中,使用PL/SQL
语言也是该语言的一个特点。本章的主要内容是讨论引入PL/SQL语言的必要性和该语言的
主要特点,以及了解PL/SQL语言的重要性和数据库版本问题。还要介绍一些贯穿全书的更
详细的高级概念,并在本章的最后就我们在本书案例中使用的数据库表的若干约定做一说
明。
本章主要重点:
PL/SQL 概述
PL/SQL 块结构
PL/SQL 流程
运算符和表达式
游标
异常处理
数据库存储过程和函数
包
触发器
§1.2 SQL 与 PL/SQL
§1.2.1 什么是 PL/SQL?
PL/SQL 是 Procedure Language & Structured Query Language 的 缩 写 。
ORACLE 的 SQL 是 支 持 ANSI(American national Standards Institute) 和 ISO92
(International Standards Organization)标准的产品。PL/SQL 是对 SQL 语言存储过程语言
的扩展。从 ORACLE6 以后,ORACLE 的 RDBMS 附带了 PL/SQL。它现在已经成为一种
过程处理语言,简称 PL/SQL。目前的 PL/SQL 包括两部分,一部分是数据库引擎部分;
另一部分是可嵌入到许多产品(如 C 语言,JAVA 语言等)工具中的独立引擎。可以将这
两部分称为:数据库 PL/SQL 和工具 PL/SQL。两者的编程非常相似。都具有编程结构、
语法和逻辑机制。工具 PL/SQL 另外还增加了用于支持工具(如 ORACLE Forms)的句法,
如:在窗体上设置按钮等。本章主要介绍数据库 PL/SQL 内容。
§1.2.1 PL/SQL 的好处
§1.2.1.1 有利于客户/服务器环境应用的运行
对于客户/服务器环境来说,真正的瓶颈是网络上。无论网络多快,只要客户端与服务
器进行大量的数据交换。应用运行的效率自然就回受到影响。如果使用 PL/SQL 进行编程,
- 1 -
1
将这种具有大量数据处理的应用放在服务器端来执行。自然就省去了数据在网上的传输时
间。
§1.2.1.2 适合于客户环境
PL/SQL 由于分为数据库 PL/SQL 部分和工具 PL/SQL。对于客户端来说,PL/SQL 可
以嵌套到相应的工具中,客户端程序可以执行本地包含 PL/SQL 部分,也可以向服务发
SQL 命令或激活服务器端的 PL/SQL 程序运行。
§1.2.2 PL/SQL 可用的 SQL 语句
PL/SQL 是 ORACLE 系统的核心语言,现在 ORACLE 的许多部件都是由 PL/SQL 写成。
在 PL/SQL 中可以使用的 SQL 语句有:
INSERT , UPDATE , DELETE , SELECT
INTO,COMMIT,ROLLBACK,SAVEPOINT。
提示:在
PL/SQL
中只能用
SQL
语句中的
DML
部分,不能用
DDL
部分,如果要
在
PL/SQL
中使用
DDL(
如
CREATE table
等
)
的话,只能以动态的方式来使用。
ORACLE 的 PL/SQL 组件在对 PL/SQL 程序进行解释时,同时对在其所使用的表
名、列名及数据类型进行检查。
PL/SQL 可以在 SQL*PLUS 中使用。
PL/SQL 可以在高级语言中使用。
PL/SQL 可以 在 ORACLE 的 开发工具中使用。
其它开发工具也可以调用 PL/SQL 编写的过程和函数,如 Power Builder 等都可以
调用服务器端的 PL/SQL 过程。
§1.3 运行 PL/SQL 程序
PL/SQL 程序 的运 行是 通 过 ORACLE 中 的一 个引 擎来 进行 的。 这个 引擎 可能 在
ORACLE 的服务器端,也可能在 ORACLE 应用开发的客户端。引擎执行 PL/SQL 中的过
程性语句,然后将 SQL 语句发送给数据库服务器来执行。再将结果返回给执行端。
- 2 -
2
第二章 PL/SQL 块结构和组成元素
§2.1 PL/SQL 块
PL/SQL 程序由三个块组成,即声明部分、执行部分、异常处理部分。
PL/SQL 块的结构如下:
DECLARE
/*
声明部分
:
在此声明
PL/SQL
用到的变量
,
类型及游标,以及局部的存储过程和函数
*/
BEGIN
/*
执行部分
:
过程及
SQL
语句
,
即程序的主要部分
*/
EXCEPTION
/*
执行异常部分
:
错误处理
*/
END;
其中 执行部分是必须的。
PL/SQL 块可以分为三类:
1. 无名块:动态构造,只能执行一次。
2. 子程序:存储在数据库中的存储过程、函数及包等。当在数据库上建立好后可以在其
它程序中调用它们。
3. 触发器:当数据库发生操作时,会触发一些事件,从而自动执行相应的程序。
§2.2 PL/SQL 结构
PL/SQL 块中可以包含子块;
子块可以位于 PL/SQL 中的任何部分;
子块也即 PL/SQL 中的一条命令;
§2.3 标识符
PL/SQL 程序设计中的标识符定义与 SQL 的标识符定义的要求相同。要求和限制有:
标识符名不能超过 30 字符;
第一个字符必须为字母;
不分大小写;
不能用’-‘(减号);
不能是 SQL 保留字。
提示
:
一般不要把变量名声明与表中字段名完全一样
,
如果这样可能得到不正确的结果
.
- 3 -
3
例如:下面的例子将会删除所有的纪录,而不是 KING 的记录;
DECLARE
Ename varchar2(20) :=’KING’;
BEGIN
DELETE FROM emp WHERE ename=ename;
END;
变量命名在 PL/SQL 中有特别的讲究,建议在系统的设计阶段就要求所有编程人员共同
遵守一定的要求,使得整个系统的文档在规范上达到要求。下面是建议的命名方法:
标识符 命名规则 例子
程序变量
V_name V_name
程序常量
C_Name C_company_name
游标变量
Name_cursor Emp_cursor
异常标识
E_name E_too_many
表类型
Name_table_type Emp_record_type
表
Name_table Emp
记录类型
Name_record Emp_record
SQL*Plus 替代变量
P_name P_sal
绑定变量
G_name G_year_sal
§2.4 PL/SQL 变量类型
在前面的介绍中,有系统的数据类型,也可以自定义数据类型。下表是 ORACLE 类型
和 PL/SQL 中的变量类型的合法使用列表:
§2.4.1 变量类型
在 ORACLE8i 中可以使用的变量类型有:
类型 子类 说 明 范 围 ORACLE 限制
CHAR Character
String
Rowid
Nchar
定长字符串
民族语言字符集
032767
可选,确省=1
2000
VARCHAR2 Varchar, String
NVARCHAR2
可变字符串
民族语言字符集
032767
4000
4000
BINARY_INT
EGER
带符号整数,为整数计算优
化性能
NUMBER(p,s) Dec
Double
小数, NUMBER 的子类型
高精度实数
整数, NUMBER 的子类型
- 4 -
4
剩余56页未读,继续阅读
ming_02
- 粉丝: 0
- 资源: 17
上传资源 快速赚钱
- 我的内容管理 收起
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
会员权益专享
最新资源
- c++校园超市商品信息管理系统课程设计说明书(含源代码) (2).pdf
- 建筑供配电系统相关课件.pptx
- 企业管理规章制度及管理模式.doc
- vb打开摄像头.doc
- 云计算-可信计算中认证协议改进方案.pdf
- [详细完整版]单片机编程4.ppt
- c语言常用算法.pdf
- c++经典程序代码大全.pdf
- 单片机数字时钟资料.doc
- 11项目管理前沿1.0.pptx
- 基于ssm的“魅力”繁峙宣传网站的设计与实现论文.doc
- 智慧交通综合解决方案.pptx
- 建筑防潮设计-PowerPointPresentati.pptx
- SPC统计过程控制程序.pptx
- SPC统计方法基础知识.pptx
- MW全能培训汽轮机调节保安系统PPT教学课件.pptx
资源上传下载、课程学习等过程中有任何疑问或建议,欢迎提出宝贵意见哦~我们会及时处理!
点击此处反馈
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功
评论0