PL/SQL编程(一)基础篇

PL/SQL编程

目标:

1.掌握pl/sql概念

2.掌握pl/sql编程技术,包括编写过程、函数、触发器等

一、pl/sql基础介绍

1.pl/sql是什么?

pl/sql(procedural language/sql)是Oracle在标准的sql语言上的扩展。pl/sql不仅允许嵌入sql语言,还可以自定义变量和常量,允许使用条件语句和循环语句,允许使用异常处理各种错误,这样使得它的功能变得更加强大。

2.pl/sql的优点

1)提高应用程序的性能

2)模块化的设计思想[分页过程、订单过程、转账过程等]

3)减少网络传输量

4)提高安全性

pl/sql缺点

1)移植性不好

3.案例

1.创建一个简单的表

create table mytest(name varchar2(30),password varchar(30));

2.向表,插入记录

create or replace procedure sp_pro1 is

begin

--执行部分

insert into mytest(name,password) values('test','123');

end;

如果在sqlplus中执行,最后一行加个斜杠/表示过程完毕

 

如何调用该过程?

exec过程名(param list);

call过程名(param list);

3.pl/sql的简单分类

4.pl/sql编程规范

1)注释

①单行注释: --

select * from emp where ename='SCOTT'; --查询员工信息

②多行注释

/* This is comments */

2)变量的命名规范

①定义变量,建议用v_作为前缀:v_sal

②定义常量,建议用c_作为前缀:c_rate

③定义游标,建议用_cursor作为后缀:emp_cursor

④定义异常,建议用e_作为前缀:e_error

5.pl/sql块(bloc)介绍

块(block)是pl/sql的基本程序单元,编写pl/sql程序实际上是编写pl/sql块。要完成相对简单的应用功能,可能只需要编写一个简单的块;但是如果想要实现复杂的功能,可能需要一个pl/sql块中嵌套其他的块。

块的结构示意图

pl/sql由三个部分组成:定义部分,执行部分,异常处理部分。

如下所示:

declare

/* 定义部分——定义变量、常量、游标、异常、复杂数据类型等 */

begin

/* 执行部分——要执行的pl/sql语句和sql语句 */

exception

/* 异常处理部分——处理各种运行的错误 */

end;

特别说明:

1.定义部分是从declare开始的,该部分是可选的;

2.执行部分是从begin开始的,该部分是必须的;

3.异常处理部分是从exception开始的,该部分是可选的

6.实例1:只包含执行部分的pl/sql块

set serveroutput on --打开输出选项

begin

dbms_output.putline('hello world.');

end;

说明:dbms_output是Oracle所提供的包,该包包含一些过程,put_line就是该包内置的一个过程。

实例2:包含定义部分和执行部分的pl/sql块

declare

v_ename varchar2(5); --定字符串变量

v_sal number(7,2);

begin

select ename,sal into v_ename,v_sal from emp where empno=&no;

--&表示要接收从控制台输入的变量,弹出框

dbms_output.putline('雇员名:'|| v_ename || ',薪水:'||v_sal);

--字符串连接符号||

end;

实例3:包含定义部分和执行部分和例外处理的pl/sql块

为了避免pl/sql程序的运行错误,提高pl/sql的健壮性,应该对可能的错误进行处理,这个很有必要:

①比如在实例2中,如果输入了不存在的雇员号,应当做例外处理

②有时出现错误,希望用另外的逻辑处理

说明:Oracle事先预定义了一些例外,no_data_found就是找不到数据例外。

原文地址:https://www.cnblogs.com/fanyong/p/2932673.html