一、pl/sql基础
1、pl/sql(procedural language/sql):是oracle在标准的sql语言上的扩展。
- 不仅允许嵌入sql语言,还可以定义变量和常量。
- 允许使用条件语句和循环语句。
- 允许使用里外处理个各种错误。
2、过程,函数,触发器
- 是由pl/sql编写的
- 存储在oracle中
- 可以在java程序中调用
- pl/sql是非常强大的数据库过程语言
3、学习的必要性
- 提高应用程序的运行性能
- 模块化的设计思想【分页的过程,订单的过程,转账的过程……】
- 减少网络传输量
- 提高安全性【对信息的封装】
4、缺点
- 可移植性差
5、开发工具
1)sqlplus:oracle公司提供。
- 编写一个存储过程,该过程可以向某表中添加记录。
-
- 创建一个简单表
-
SQL>create table mytest(name varchar2(30),passwd varchar2(30));
- 创建过程(replace表示如果有sp_pro1,则替换)
-
Warning: Procedure created with compilation errorsSQL>create or replace procedure sp_pro1 is 2 begin 3 insert into mytest values('小红','xiaohong'); 4 end; 5 /
- 查看错误信息:show error;
SQL>show error; Errors for PROCEDURE SCOTT.SP_PRO1: LINE/COL ERROR -------- ------------------------------------- 3/20 PL/SQL: ORA-00928: 缺失 SELECT 关键字 3/1 PL/SQL: SQL Statement ignored
SQL> create or replace procedure sp_pro1is 2 begin 3 insert into mytest values('小红','xiaohong'); 4 end; 5 / Procedure created
- 如何调用该过程
-
- exec 过程名(参数值1,参数值2……);
-
SQL>exec sp_pro1; PL/SQL procedure successfully completed
- call 过程名(参数值1,参数值2……);
-
SQL>call sp_pro1; PL/SQL procedure successfully completed
SQL>call sp_pro1;
PL/SQL procedure successfully completed
2)pl/sql developer开发工具
- 编写一个存储过程,该过程可以删除某表记录。
-
- 创建过程(replace表示如果有sp_pro2,则替换)
-
SQL> create or replace procedure sp_pro2 is 2 begin 3 delete from mytest where name='小红'; 4 end; 5 / Procedure created
-
- 调用该过程
-
SQL> exec sp_pro2; PL/SQL procedure successfully completed