韩顺平.玩转oracle - pl/sql

pl/sql

  • procedural language / sql 过程化语言
    是oracle在标准的sql语言上的扩展
    不仅允许嵌入sql语言,还可以定义变量和常量
    允许使用条件语句和循环语句,允许使用例外处理各种错误
  1. 过程、函数、触发器是pl/sql编写
  2. 过程、函数、触发器是在oracle中
  3. pl/sql是非常强大的数据库过程语言
  4. 过程、函数可以在JAVA程序中调用
  • 学习必要性
    1⃣️ 提高应用程序的运行性能
    2⃣️ 模块化的设计思想
    3⃣️ 减少网络传输量
    4⃣️ 提高安全性

  • 缺点
    移植性不好

用什么编写pl/sql块

  • sql plus开发工具 (使用较多)
    oracle公司提供的一个工具
  • pl/sql developer开发工具
    用于开发pl/sql块的集成开发环境(ide),是一个独立产品
--SQL*PLUS案例
--编写一个存储过程,该过程可以向某表中添加记录
--scott用户登录
create procedure sp_pro1 is
begin
insert into mytest('韩顺平','1234')
end;
/
--pl/sql developer案例
--编写一个存储过程,该过程可以删除某表记录
create procedure sp_pro2 is
begin
delete from mytest
where name = '韩顺平';
end;
/

介绍
pl/sql变成可以使用变量和逻辑控制语句,从而可以编写非常有用的功能模块
比如:分页存储过程模块、订单处理存储过程模块、转账存储过程模块……

pl/sql可以做什么

  • 简单分类
    块(编程)是基础单位
    里面包含 过程(存储过程)、函数、触发器、包

编写规范

  • 注释
    单行注释: –
    select * from emp where empno = 7788; --取得员工信息
    多行注释: /* */来划分
  • 标识符号的命名规范
    1)当定义变量时,建议用v_作为前缀
    2)当定义常量时,建议用c_作为前缀
    3)当定义游标时,建议用_cursor作为后缀
    4)当定义例外时,建议用e_作为前缀

pl/sql块介绍
块(block)是pl/sql的基本程序单位
编写pl/sql程序实际上就是编写pl/sql块

  • 简单的应用功能: 编写一个pl/sql块
  • 复杂的应用功能:在一个pl/sql块中嵌套其它的pl/sql块

块结构示意图
由三个部分组成

  1. 定义部分 ( declare) 可选部分
    定义常量、变量、游标、例外、复杂数据类型
  2. 执行部分(begin) 必须部分
    要执行的pl/sql语句和sql语句
  3. 例外处理部分 (exception)可选部分
    处理运行的各种错误

pl/sql分类

过程
用于执行特定的操作

当建立过程时,既可以指定输入参数(in),也可以指定输出参数(out)
通过在过程中使用输入参数,可以将数据传递到执行部分
通过使用输出参数,可以将执行部分的数据传递到应用环境

在sql plus中可以使用 create procedure命令来建立过程

--编写一个过程,可以输入雇员名,新工资 可修改雇员的工资
create procedure sp_pro1(spname varcharw,newsal number) is
--执行部分,根据用户名修改工资
begin
update emp set sal = newsal
where ename = spname;
end;--两种方法调用存储过程
exec sp_pro1('scott',4678);
call sp_pro1('scott',4678);
--实例一,只包含执行部分的pl/sql块
set serveroutput on --打开输出选项
begin
dbms
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值