PL/SQL(Procedural Language extensions to SQL)是Oracle 对标准 SQL 语言的过程化扩展,是专门用于各种环境下对 Oracle 数据库进行访问和开发的语言。

一、概述

  Oracle数据库对标准的SQL 语言进行了扩展,将 SQL 语言的非过程化与第三代开发语言的过程化相结合,产生了 PL/SQL 语言。在 PL/SQL 语言中,既可以通过SQL 语言实现对数据库的操作,也可以通过过程化语言中的复杂逻辑结构完成复杂的业务逻辑。

  在PL/SQL程序中,引入了变量、控制结构、函数、过程、包、触发器等一系列数据库对象,为进行复杂的数据库应用程序开发提供了可能。

  特点:

  [1] 与SQL语言紧密集成,支持SQL语句;

  [2] 减少网络流量,提高应用程序的运行性能;

  [3] 模块化程序设计功能,提高了系统可靠性;

  [4] 服务器端程序设计,可移植性好。

二、PL/SQL程序结构

1、PL/SQL块的组成

  PL/SQL程序的基本单元室语句块。一个完整的语句块由三部分组成:

DECLARE
声明部分,定义变量、数据类型、异常、局部子程序等
BEGIN
执行部分,实现块的功能
EXCEPTION
异常处理部分,处理程序执行过程中产生的异常
END

  注意:

  [1] 执行部分是必须的,声明和异常是可选的;

  [2] 可以在执行或异常处理部分嵌套其他的PL/SQL块;

  [3] 所有的块都是以“ END; ”结束的;

2、块的分类

  匿名块:动态生成,只能执行一次的块,不能由其他应用程序调用;

  命名块:一次编译可多次执行的PL/SQL程序,包括函数、存储过程、包、触发器等。他们编译后放在服务器中,由应用程序或系统在特定条件下调用执行。

三、词法单元

  所有PL/SQL程序都由词法单元构成,所谓词法单元就是一个字符序列,字符序列中的字符取自PL/SQL语言所允许的字符集。PL/SQL中的词法单元包括标识符、分隔符、常量值、注释等。

1、字符集

  字符集包括如下:

  [1] 所有大小写字母:包括A~Z,和 a~z;

  [2] 数字:包括0~9;

  [3] 空白符:包括制表符、空格和回车符;

  [4] 符号:+、-、*、/、<、>、=、~、!、@、#、$、%、^、&、(、)、_、|、{、}、[、]、?、;、:、,、.、"、'。

  注:字符集不区分大小写。

2、标识符

  标识符用于定义PL/SQL变量、常量、异常、游标名称、游标变量、参数、子程序名称和其他的程序单元名称等。

  标识符是以字母开头的,后边可以跟字母、数字、美元符号($)、井号(#)或下划线(_),其最大长度为30个字符,并且所有字符都是有效的。

  注意:如果标识符区分大小写、使用预留关键字或包含空格等特殊符号时,需用""括起来,称为引证标识符。

3、分隔符

  分隔符是指有特定含义的单个符号或组合符号。

4、常量值

  常量是指不能作为标识符的字符型、数字型、日期型和布尔型值。

  [1] 字符型:即以单引号引起来的字符串,在字符串中的字符区分大小写。如果字符串本身包含单引号,则用两个连续的单引号进行转义。如'he''s book'。

  [2] 数字型:分为整数与实数两类。

  [3] 布尔型:指预定义的布尔型变量的取值,包括 TRUE、FALSE、NULL三个值。

  [4] 日期型:表示日期值,其格式随日期类型格式不同而不同。

5、注释

  单行注释:以“--”开始,直到该行结尾;

  多行注释:以“/*”开始,以“*/”结束。

四、数据类型

PL/SQL 之 基础的更多相关文章

  1. Oracle数据库编程:PL/SQL编程基础

    2.PL/SQL编程基础: PL/SQL块:        declare        定义部分        begin        执行部分        exception        异 ...

  2. Oracle Pl/SQL编程基础

    Pl/SQL简介 提高应用程序的运行性能, 提供模块化的程序设计, 自定义标示符, 具有过程语言控制结构, 良好的兼容性, 处理运行错误. Pl/SQL语言基础 sql是关系数据库的基本操作语言. s ...

  3. oracle PL/SQL语法基础

    目录 数据类型 定义变量 PL/SQL控制结构 参考资料 Oracle10g数据类型总结 PL/SQL之基础篇 数据类型 学习总结 字符类型 char.nchar.varchar.nvarchar:有 ...

  4. 【PL/SQL编程基础】

    [PL/SQL编程基础]语法: declare 声明部分,例如定义变量.常量.游标 begin 程序编写,SQL语句 exception 处理异常 end: / 正斜杠表示执行程序快范例 -- Cre ...

  5. PL/SQL语言基础

    PL/SQL语言基础 进行PL/SQL编程前,要打开输出set serveroutput on 1.创建一个匿名PL/SQL块,将下列字符输出到屏幕:"My PL/SQL Block Wor ...

  6. PL/SQL编程基础(三):数据类型划分

    数据类型划分 在Oracle之中所提供的数据类型,一共分为四类: 标量类型(SCALAR,或称基本数据类型) 用于保存单个值,例如:字符串.数字.日期.布尔: 标量类型只是作为单一类型的数据存在,有的 ...

  7. PL/SQL编程基础(一):PL/SQL语法简介(匿名PL/SQL块)

    PL/SQL PL/SQL是Oracle在关系数据库结构化查询语言SQL基础上扩展得到的一种过程化查询语言. SQL与编程语言之间的不同在于,SQL没有变量,SQL没有流程控制(分支,循环).而PL/ ...

  8. PL/SQL编程基础——PL/SQL简介

    课程教师:李兴华 课程学习者:阳光罗诺 日期:2018-07-28 知识点: 1. 了解PL/SQL的主要特点 2. 掌握PL/SQL块的基本结构 PL/SQL PL/SQL是Oracle在关系数据库 ...

  9. Oracle PL/SQL语句基础学习笔记(上)

    PL/SQL是ORACLE对标准数据库语言的扩展,ORACLE公司已经将PL/SQL整合到ORACLE server和其它工具中了,近几年中很多其它的开发者和DBA開始使用PL/SQL,本文将讲述PL ...

  10. Oracle数据库之PL/SQL程序基础设计

    一.PL/SQL块结构 前边我们已经介绍了PL/SQL块的结构,再来回顾一下: DECLARE /* * 声明部分——定义常量.变量.复杂数据类型.游标.用户自定义异常 */ BEGIN /* * 执 ...

随机推荐

  1. FastReport.Net使用:[6]HTML标签使用

    使用HTML标签的基础知识 1.FastReport所支持的HTML标签包括: ●粗体:<b>...</b> ●斜体:<i>...</i> ●下划线:& ...

  2. BZOJ1086 SCOI2005王室联邦

    想学树上莫队结果做了个树分块. 看完题后想到了菊花图的形状认为无解,结果仔细一瞧省会可以在外省尴尬 对于每一颗子树进行深搜,一旦遇到加在一起大小达到B则将它们并为一省,因为他子树搜完以后没有分出块的大 ...

  3. luoguP4320 道路相遇 圆方树

    标题已经告诉你怎么做了..... 两点间的圆点个数即为所求 建出圆方树后打个树剖求$lca$就行..... 复杂度$O(n + q \log n)$ #include <cstdio> # ...

  4. [BZOJ1032][P1840] 祖玛 记忆化搜索 动态规划

        描述 Description     某天,小x在玩一个经典小游戏——zumo.zumo游戏的规则是,给你一段长度为n的连续的彩色珠子,珠子的颜色不一定完全相同,但是,如果连续相同颜色的珠子大 ...

  5. hdu 3089 (快速约瑟夫环)

    Josephus again Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Others)To ...

  6. [转]软件版本号扫盲——Beta RC Preview release等

      1.软件版本阶段说明 *Alpha版:此版本表示该软件在此阶段主要是以实现软件功能为主,通常只在软件开发者内部交流,一般而言,该版本软件的Bug较多,需要继续修改. *Beta版:该版本相对于α版 ...

  7. 2015 UESTC 搜索专题K题 秋实大哥の恋爱物语 kmp

    秋实大哥の恋爱物语 Time Limit: 20 Sec  Memory Limit: 256 MB 题目连接 http://acm.uestc.edu.cn/#/contest/show/61 De ...

  8. zabbix install

    Auth: Jin Date: 20140714 用了5 6年的监控工具 http://zabbix.org/wiki/InstallOnCentOS_RHEL Server Install yum ...

  9. CMSIS-SVD Schema File Ver. 1.1 (draft)

    http://www.keil.com/pack/doc/cmsis/svd/html/group__schema__1__1__gr.html <?xml version="1.0& ...

  10. Spring在bean配置文件中定义电子邮件模板

    在上一篇Spring电子邮件教程,硬编码的所有电子邮件属性和消息的方法体中的内容,这是不实际的,应予以避免.应该考虑在Spring bean 配置文件中定义电子邮件模板. 1.Spring的邮件发件人 ...