pl/sql编程基础

PL/SQL

1,过程,函数,触发器是PL/SQL编写的

2,过程,函数,触发器是存放在甲骨文数据库中的

3 PL/SQL是非常强大的过程化语言

4,过程,函数,触发器可以在java程序中调用


PL/SQL编写能节省一点时间就是提高了性能(量大),java直接调用数据库存放的过程,解析时间就节省下来了,提高了性能


模块化的设计思想- - - - - -》存储过程


网络传输(java程序中编写的SQL语言),直接调用数据库的过程节省了传输量


提高安全性(存储过程避免了数据库信息的泄漏)

缺点:

移植性不好


PL/SQL编程基本单位是块,通过块可以编写出过程,函数,触发器,包

下面进行一个最基本的编程

案例:向某表中插入一条数据

创建或repalce过程名称:替换表示如果名称已存在,就替换

开始插入测试值(“小明”,“红帽”)

,

/

创建程序创建存储过程关键字

或repalce:表示如果名称已存在,就替换

是:也是关键字

存储过程定义的头和开始之间是定义部分(定义变量常量等等),后面提到

开始:关键字

结束:结束符

开始与结束结束之间就是执行部分

上面一个简单的存储过程是向某表中添加一条数据,现在先创建一张表

完成创建表名(名varchar2(20),密码varchar2 (30),


创建表。

然后通过编写一个存储过程向其中添加数据


完成创建或替换过程sp_pro1是

,2,开始

,3,插入名称值(“小明”,“红帽”);

,4,最后,

,5,/


程序创建。

存储过程已建立,该如何执行呢?使用关键字执行或者,如下

完成exec sp_pro1;


PL/SQL过程成功完成。

然后查询表,看是否添加了数据

完成select * from名称;


名称,,,,,,,,密码

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -

小明,,,,,,redhat


当若编写的过程有误时,可以通过显示错误这条命令查看错误具体信息


pl/sql编程是由最小单位块组成的,看看块的组成部分

pl/sql块由三个部分组成:定义部分,执行部分,例外处理部分

声明,定义部分,定义常量,变量,游标,例外,复杂数据类型,

开始执行部分,要执行的pl/sql语句和sql语句

例异常外处理部分,处理运行的各种错误


定义部分是从宣布开始的,可选

执行部分从开始开始,必选

例外处理部分从异常,可选

下面编写一条最简单的块,输出hello world

编写之前打开系统的屏幕输出信息,不然看不到效果

完成设置serveroutput;

完成开始

,2,dbms_output。put_line (“hello world”);

,3,最后,

,4,/

hello world


PL/SQL过程成功完成。

最简单的块编程,只有执行部分,而且只输出了一条信息hello world。

相关说明:dbms_output是甲骨文所提供的包(类似java的开发包),该包包含一些过程,put_line就是

dbms_output包的一个过程(包里面的一个过程)


实例2:包含定义部分和执行部分

完成declare 

,2,v_name varchar2 (20);,,改行表示定义的变量,变量名v_name,数据类型为varchar2

,3,开始

,4,选择从emp ename成v_name empno=, empno;,,由键盘输出

,5,dbms_output.put_line (v_name);

,6,,

,7,/

输入为empno值:7788

,4:选择从emp ename成v_name empno=, empno;

新,4:选择ename从emp v_name empno=7788;

斯科特,,,,输出到屏幕的信息v_name


PL/SQL过程成功完成。


实例3:包含定义部分,执行部分和例外处理部分

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

相关说明:甲骨文事先预定义了一些例外,no_data_found就是找不到数据的例外

如上述例子,如果输入烦人不是emp表中的empno号码,那么将会报,错报错该如何处理呢,这里就定义例外部分,交给他处理

完成declare 

,2,v_name varchar2 (20);

,3,v_sal数量(7,2);

,4,开始

,5,选择ename, sal v_name, v_sal从emp empno=, empno;

,6,dbms_output。put_line (v_name | |的| | v_sal);

,7,异常,,,,,,定义例外关键字异常

,8,当no_data_found,,当查询不到数据时,采取措施打印错误

pl/sql编程基础