概述
PL/sql简介
pl/sql(procedural language/sql)是Oracle在标准的sql语言上的扩展,pl/sql不仅允许嵌入sql语言,还可以定义变量和常量,允许使用条件语句和循环语句,允许使用例外处理各种错误,这样使得它的功能变得更加强大。
pl/sql是面向过程的语言。
不同数据库的sql扩展
PL/sql的必要性:
1、提高应用程序的运行性能。
2、模块化的设计思想。
3、减少网络传输量。
4、提高安全性。
PL/sql编写规范
1、注释
单行注释–
sql>select * from emp where empno=7788; –取得员工信息
多行注释
/………………../
2、标识符号的命名规范
(1)当定义变量时,建议用v_作为前缀 v_sal。
(2)当定义常量时,建议用c_作为前缀 c_rate。
(3)当定义游标时,建议用_cursor作为后缀emp_cursor。
(4)当定义例外时,建议用e_作为前缀 e_error。
PL/sql块
块(block)是pl/sql的基本程序单元,编写pl/sql程序实际上 就是编写pl/sql块。要完成相对简单的应用功能,可能只需要编写一个pl/sql块;但是如果想要实现复杂的功能,可能需要在一个pl/sql块中嵌套其他的pl/sql块。
1、块结构示意图
pl/sql块由三个部分构成:定义部分、执行部分、例外处理部分。
declear:定义部分是从declare开始的,这部分是可选的。定义常量、变量、游标例外、复杂数据类型。
begin:执行部分是从begin开始的,这部分是必须的。
exception:例外处理部分是exception开始的,该部分可选的。
第一个PL/sql程序
PLsql中的命令窗口
sql> set serveroutput on ;--打开输出
sql> declare
--定义部分 ,如果没有定义,declare可以省略。 可选 ,定义常量、变量、游标、例外、复杂数据类型
2 begin
--程序
3 dbms_output.put_line('66666666');
4 end;
5 /
66666666
PL/sql procedure successfully completed sql> / --表示执行上一个PL/sql块。 66666666 PL/sql procedure successfully completed
PL/sql基础语法
程序结构
declare
说明部分(变量说明\光标声明\例外说明)
begin 语句序列(DML语句) exception 例外处理语句 end ;
/
基本变量类型
说明部分
定义基本变量类型:char 、 varchar2、date、number、boolean、long
举例:
var1 char(20);
married boolean := false ;
psal number(7,2);
sql> set serveroutput on ;
sql>
sql> declare
2 -- 定义基本变量类型
3 v_name varchar2(20);--varchar2 字符串类型
4 v_num number(7,2);--number 数字类型
5 v_date date ;--date 日期类型
6
7 begin
8
9 v_name :='小工匠';
10 dbms_output.put_line('name:'||v_name);
11
12 v_num :=999;
13 dbms_output.put_line('num:'||v_num);
14
15 v_date :=sysdate;
16 dbms_output.put_line('数据库时间:'||v_date);
17
18 dbms_output.put_line('明天的时间:'||(v_date+1));
19 end ;
20 /
name:小工匠
num:999
数据库时间:22-JUN-16
明天的时间:23-JUN-16
PL/sql procedure successfully completed sql>
引用型变量
使用%TYPE类型的变量
举例
v_name emp.ename%type ;