Oracle 数据库 - PL/SQL 编程(一)

目录

PL/SQL 简介

1、PL/SQL 块结构

2、代码注释和标识符

1)、单行注释

2)、多行注释

3)、PL/SQL 字符集

数据类型、变量和常量

1、基本数据类型

1)、数值类型

2)、字符类型

3)、日期类型

4)、布尔类型

2、特殊数据类型

1)、%type 类型

2)、record 类型

3)、%rowtype 类型

3、定义变量和常量

1)、定义变量

2)、定义常量


 

PL/SQL 简介

PL/SQL 是一种过程化语言,在 PL/SQL 中可以通过 if 语句或 loop 语句实现控制程序的执行流程,甚至可以定义变量,以便在语句之间传递数据信息,这样 PL/SQL 语言就能够实现操控程序处理的细节过程,不像普通的 SQL 语句(如 DML 语句、DQL 语句)那样没有流程控制,也不存在变量,因此使用 PL/SQL 语言可以实现比较复杂的业务逻辑。PL/SQL 是 Oracle 的专用语言,它是对标准 SQL 语言的扩展,允许在其内部嵌套普通的 SQL 语句,这样就将 SQL 语句的数据操纵能力、数据查询能力和 PL/SQL 的过程处理能力结合在一起,达到各自取长补短的目的。

1、PL/SQL 块结构

PL/SQL 程序都是以块为基本单位吗,整个 PL/SQL 块分三部分:声明部分(用 declare 开头)、执行部分(以 begin 开头)和异常处理部分(以 exception 开头)。其中执行部分是必需的,其他两个部分可选。无论 PL/SQL 程序段的代码量有多大,其基本结构就是由这三部分组成。标准 PL/SQL 块的语法格式如下:

[ declare ] 
--声明部分,可选
begin
--执行部分,必须
[ exception ]
--异常处理部分,可选
end 

下面说下对 PL/SQL 块的三个组成部分进行详细说明:1)、声明部分由关键字 declare 开始,到 begin 关键字结束。在这部分可以声明 PL/SQL 程序块中所用到的变量、常量和游标等。需要注意的是,在某个 PL/SQL 块中声明的内容只能在当前块中使用,而在其他 PL/SQL 块中是无法引用的。2)、执行部分以关键字 begin 开始,它的结束方式通常有两种,如果 PL/SQL 块中的代码在运行时出现异常,则执行完异常处理部分的代码就结束;如果没有使用异常处理或 PL/SQL 块未出现异常,则以关键字 end 结束。执行部分是整个 PL/SQL 程序块的主体,主要的逻辑控制和运算都在这部分完成,所以在执行部分可以包含多个 PL/SQL 语句和 SQL 语句。3)、异常处理部分以关键字 exception 开始,在该关键字所包含的代码执行完毕,整个 PL/SQL 块也就结束了。在执行 PL/SQL 代码(主要是执行部分)的过程中,可能会产生一些意想不到的错误,如除数为零,空值参与运算等,这些错误都会导致程序中断运行。这样程序设计人员就可以在异常处理部分通过编写一定量的代码来纠正错误或者给用于提供一些错误信息提示,甚至是将各种数据操作回退到异常产生之前的状态,以备重新运行代码块。另外,对于可能出现的多种异常情况,用户可以使用 where ... then 语句来实现多分支判断,然后就可以在每个分支下通过编写代码来处理相应的异常。

对于 PL/SQL 块中的语句,需要指出的是:每一条语句都必须以分号结束每条 SQL 语句可以写成多行的形式,同样必须使用分号来结束。另外,一行中也可以有多条 SQL 语句,但是它们之间必须以分号分隔

例:定义一个 PL/SQL 代码块,计算两个整数的和与这两个整数的差的商:

在上面代码中,首先使用 ‘ set serveroutput on ’ 命令来实现在服务器端显示执行结果;然后使用 declare 关键字声明 3 个变量,其中前两个整型(int)变量 a 和 b 的初始值设置分别为 100 和 200 ;最后在 PL/SQL 块的执行部分计算出这两个整数的和与它们之间差的商,并调用 ‘ dbms_output.put_line(c); ’ 语句输出计算结果。 另外为了防止除数为零的情况发生,代码中还设置了异常处理部分,若发生除数为零的情况,则代码块通过调用 ‘ dbms_output.put_line('除数不能为0!'); ’ 语句向用户输出提示信息。 

 

2、代码注释和标识符

注释用于对程序代码的解释说明,它能够增强程序的可读性,使程序更易于理解。注释编译时被 PL/SQL 编译器忽略掉,注释有单行注释和多行注释两种情况。另外,在 PL/SQL 块中声明的变量、常量、游标和存储过程等标识符的名称都是由一系列字符集所组成的,Or

  • 0
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值