PLSQL块结构

本文详细介绍了PL/SQL的特性、优势以及如何在Oracle数据库中使用它进行高效的编程。通过实例展示了PL/SQL块的基本结构和使用方法,包括过程、函数、触发器和包的编写规范,以及如何避免运行错误并提高程序健壮性。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

pl/sql(procedural language/sql)是oracle在标准的sql语言上的扩展。pl/sql不仅允许嵌入sql语言,还可以定义变量和常量,允许使用条件语句和循环语句,允许使用例外处理各种错误,这样使得它的功能变得更加强大。
1. 为什么学pl/sql?
(1). 提高应用程序的运行性能
(2). 模块化的设计思想 [ 分页的过程,订单的过程,转账的过程。。]
(3). 减少网络传输量
(4). 提高安全性(sql会包括表名,有时还可能有密码,传输的时候会泄露。PL/SQL就不会) 
2.  不好的地方
(1). 移植性不好(换数据库就用不了)
(2). 用什么编写pl/sql
3.  举一个简单的案例
编写一个存储过程,该过程可以向某表中添加记录。
(1). 创建一个简单的表
       create table mytest(name varchar2(30),passwd varchar2(30)); 
(2). 创建过程

 

      replace:表示如果有sp_pro1,就替换 
      如何查看错误信息:show error; 
(3). 如何调用该过程:
      1)exec 过程名(参数值1,参数值2...); 
      2)call 过程名(参数值1,参数值2...);  
4.  pl/sql介绍 
     开发人员使用pl/sql编写应用模块时,不仅需要掌握sql语句的编写方法,还要掌握pl/sql语句及语法规则。pl/sql编程可以使用变量和逻辑控制语句,从而可以编写非常有用的功能模块。比如:分页存储过程模块、订单处理存储过程模块、转账存储过程模块。而且如果使用pl/sql编程,我们可以轻松地完成非常复杂的查询要求。

(1). 简单分类
                          |————过程(存储过程)
                          | 
                          |————函数
      块(编程)———| 
                          |————触发器
                          |
                          |————包

(2). 编写规范
      a. 单行注释 --
          select * from emp where empno=7788;  --取得员工信息 
      b. 多行注释 /*...*/ 来划分
(3). 标志符号的命名规范
      1).当定义变量时,建议用v_作为前缀v_sal 
      2).当定义常量时,建议用c_作为前缀c_rate
      3).当定义游标时,建议用_cursor作为后缀emp_cursor
      4).当定义例外时,建议用e_作为前缀e_error
5.  pl/sql块介绍 
     块(block)是pl/sql的基本程序单元,编写pl/sql程序实际上就是编写pl/sql块,要完成相对简单的应用功能,可能只需要编写一个pl/sql块,但是如果想要实现复杂的功能,可能需要在一个pl/sql块中嵌套其它的pl/sql块。 
pl/sql 块由三个部分构成:定义部分,执行部分,例外处理部分。
如下所示。
declare
/*定义部分——定义常量、变量、游标、例外、复杂数据类型*/
begin
/*执行部分——要执行的pl/sql语句和sql语句*/
exception
/*例外处理部分——处理运行的各种错误*/
end;
定义部分是从declare开始的,该部分是可选的;
执行部分是从begin开始的,该部分是必须的;
例外处理部分是从exception开始的,该部分是可选的。 
pl/sql块的实例
(1). 实例1-只包括执行部分的pl/sql块

 

  
      dbms_output是oracle所提供的包(类似java的开发包),该包包含一些过程,put_line就是dbms_output包的一个过程。  
(2). 实例2-包含定义部分和执行部分的pl/sql块 
  
      如果要把薪水也显示出来,那么执行部分就应该这么写:
      select ename,sal into v_ename,v_sal from emp where empno=&aa;  
      & 表示要接收从控制台输入的变量。
(3). 实例3-包含定义部分,执行部分和例外处理部分
      为了避免pl/sql程序的运行错误,提高pl/sql的健壮性,应该对可能的错误进行处理,这个很有必要。
1.比如在实例2中,如果输入了不存在的雇员号,应当做例外处理。
2.有时出现异常,希望用另外的逻辑处理,[网示] 
相关说明:
oracle事先预定义了一些例外,no_data_found就是找不到数据的例外。 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值