首先明确PL/SQL主要做用做用: sql
SQL语言适合管理关系型数据库可是它没法知足更复杂的数据处理,因此产生PLSQL。PLSQL用户建立存储过程、函数、触发器、包及用户自定义的函数。数据库
特色:编程
PLSQL具备高级语言所拥有的编程结构,使用PLSQL能够极大的提升数据库编程的灵活性,PLSQL不是独立存在的,他是Oracle服务器的一部分,能够再客户端和服务器端运行。服务器
PLSQL的应用环境:客户端和服务器端函数
PLSQL基本结构:spa
块头区blog
ISio
声明区ast
Beginfunction
执行区
Exception
异常区
块头区:块头区包含程序单元名字和参数,其中程序单元名字能够是函数(function),存储过程(procedure),包(package-package body),参数具备必定的数据类型,该参数分为三类:in(输入) out(输出) inout(双向的)
相对于函数必须有返回值
Create or replace function function_name(f float)
Return float
存储过程是没有返回值
Create or replcae procedure procedure_name (name in varchar2)
声明区:
Plsql用到的一些变量等都在声明区进行声明,变量的数据类型能够是任意的Oracle数据类型,还能够进行constraint约束,好比非空等 not null
例子:
Var varchar2(10);
Var varchar2(10) not null;
Var varchar2(10) := ‘hello’;
Var integer default 3.14;
执行区:
用于完成该程序单元的功能逻辑Begin end做为起始标识能够包含null 可是不能为空
异常区:抛出异常
Exception
when exception_name1 then
error1;
when others then
error2;
总体实例:
Declare
var_first varchar2(10);--变量声明
var_last varchar2(10);
BEGIN
select first_name,last_name
into var_first,var_last from emp;
dbms_output.put_line(‘first_name’||var_first);
dbms_output.put_line(‘last_name’||var_last);--dbms_output.put_line返回信息
EXCEPTION --异常区
WHEN no_data_found THEN
dbms_output.put_line('no data found');
END;