PL/SQL程序设计(二)—— PL/SQL块结构和组成元素

(一)PL/SQL块 

  PL/SQL程序由三个块组成,即声明部分、执行部分、异常处理部分,其中执行部分是必须的。

PL/SQL块的结构如下:

PL/SQL块可以分成三类:

1、无名快:动态构造,只能执行一次。

2、子程序:存储在数据库中的存储过程、函数及包等。当在数据库建立好后可以在其他程序中调用它们。

3、触发器:当数据库发生操作时,会触发一些时间按,从而自动执行相应的程序。

(二)PL/SQL结构

  • PL/SQL块中可以包含子块

  • 子块可以位于PL/SQL中的任何部分

  • 子块也即PL/SQL中的一条命令

(三)标识符

PL/SQL程序设计中的标识符定义与SQL的标识符定义要求相同,要求和限制如下:

  • 标识符名不能超过30字符

  • 第一个字符必须为字母

  • 不分大小写

  • 不能用‘-’(减号)

  • 不能是SQL保留字

提示:一般不要把变量名声明与字段名完全一样,如果这样可能得到不正确的结果

 

变量命名在PL/SQL中有特别的讲究,建议在系统的设计阶段就要求所有编程人员共同遵守一定的要求,使得整个系统的文档在规范上达到要求。下面是建议的命名方法:

(四)PL/SQL变量类型

1、变量类型

2、复合类型

ORACLE在PL/SQL中除了提供像前面介绍的各种类型外,还提供了一种成为复合类型 —— 记录和表

(1)记录类型

记录类型是把逻辑相关的数据作为一个单元存储起来,称作PL/SQL RECORD的域,其作用是存放互不相同但逻辑相关的信息

语法:

DBMS_OUTPUT.PUT_LINE过程的功能类似与JAVA中的System.out.println();直接将结果输出到标准输出中

在使用上述过程之前必须将SQL*PLUS的环境参数SERVEROUTPUT设置为ON,否则将看不到输出结果:set serveroutput on

(2)使用%TYPE

定义一个变量,其数据类型与意境定义的某个数据变量的数据类型相同,或者与数据库表的某个列的数据类型相同,这是就可以使用%TYPE。

优点:

  • 所使用的数据库列的数据类型可以不必知道

  • 所引用的数据库列的数据类型可以实时改变

(3)使用%ROWTYPE

PL/SQL提供的%ROWTYPE操作符,返回一个记录类型,其数据类型和数据库表的数据结构相一致。

优点:

  • 所引用的数据库中列的个数和数据类型可以不必知道

  • 所引用的数据库中列的个数和数据类型可以实时改变

 

 
(4)PL/SQL表(嵌套表)

PL/SQL程序可使用嵌套表类型创建具有一个或多个列和无限行的变量,这很像数据库中的表,声明嵌套表类型的一般语法如下:

在使用嵌套表之前必须先使用该集合的构造器初始化它,PL/SQL自动提供一个带有相同名字的构造器作为集合类型

嵌套表可以有任意数量的行,表的大小在必要时课动态地增加或减少:extend(x)方法添加x个空元素到集合末尾;trim(x)方法去掉集合末尾的x个元素

(五)运算符和表达式(数据定义)

1、关系运算符

2、一般运算符

 

 3、逻辑运算符

(六)变量赋值

在PL/SQL编程中,变量赋值只一个值得注意的地方,语法如下:

1、字符与数字运算特点

2、BOOLEAN复制

布尔值只有TURE,FALSE及NULL三个值

3、数据库赋值

数据库赋值是通过select语句来完成的,每次执行SELECT语句就赋值一次,一般要求被赋值的变量与SELECT找那个的列名要一一对应

4、可转化的类型赋值

(七)变量作用范围及可见性

 

转载于:https://www.cnblogs.com/wffrzh/p/9435700.html

PL/SQL是ORACLE对标准数据库语言的扩展,ORACLE公司已经将PL/SQL整合到ORACLE 服务器和其他工具中了,近几年中更多的开发人员和DBA开始使用PL/SQL,本文将讲述PL/SQL基础语法,结构和组件、以及如何设计并执行一个PL/SQL程序。   PL/SQL的优点   从版本6开始PL/SQL就被可靠的整合到ORACLE中了,一旦掌握PL/SQL的优点以及其独有的数据管理的便利性,那么你很难想象ORACLE缺了PL/SQL的情形。PL/SQL 不是一个独立的产品,他是一个整合到ORACLE服务器和ORACLE工具中的技术,可以把PL/SQL看作ORACLE服务器内的一个引擎,sql语句执行者处理单个的sql语句,PL/SQL引擎处理PL/SQL程序。当PL/SQL程序PL/SQL引擎处理时,ORACLE服务器中的SQL语句执行器处理pl/sql程序中的SQL语句。   PL/SQL的优点如下:   . PL/SQL是一种高性能的基于事务处理的语言,能运行在任何ORACLE环境中,支持所有数据处理命令。通过使用PL/SQL程序单元处理SQL的数据定义和数据控制元素。   . PL/SQL支持所有SQL数据类型和所有SQL函数,同时支持所有ORACLE对象类型   . PL/SQL可以被命名和存储在ORACLE服务器中,同时也能被其他的PL/SQL程序或SQL命令调用,任何客户/服务器工具都能访问PL/SQL程序,具有很好的可重用性。   . 可以使用ORACLE数据工具管理存储在服务器中的PL/SQL程序的安全性。可以授权或撤销数据库其他用户访问PL/SQL程序的能力。   . PL/SQL代码可以使用任何ASCII文本编辑器编写,所以对任何ORACLE能够运行的操作系统都是非常便利的   . 对于SQL,ORACLE必须在同一时间处理每一条SQL语句,在网络环境下这就意味作每一个独立的调用都必须被oracle服务器处理,这就占用大量的服务器时间,同时导致网络拥挤。而PL/SQL是以整个语句发给服务器,这就降低了网络拥挤。   PL/SQL结构   PL/SQL是一种结构的语言,组成PL/SQL程序的单元是逻辑,一个PL/SQL 程序包含了一个或多个逻辑,每个都可以划分为三个部分。与其他语言相同,变量在使用之前必须声明,PL/SQL提供了独立的专门用于处理异常的部分,下面描述了PL/SQL的不同部分:   声明部分(Declaration section)   声明部分包含了变量和常量的数据类型和初始值。这个部分是由关键字DECLARE开始,如果不需要声明变量或常量,那么可以忽略这一部分;需要说明的是游标的声明也在这一部分。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值