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就是找不到数据例外。
作者:樊勇
出处:http://www.cnblogs.com/fanyong/
本文版权归作者和博客园共有,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文连接,否则保留追究法律责任的权利。
我的联系方式:fanyong@gmail.com
个人独立博客:www.fy98.com