第七章-存储过程、触发器和程序包


前言

本博客仅做学习笔记,如有侵权,联系后即刻更改

科普:Oracle11g


一、考核内容及要求

要求

  • 熟练掌握存储过程的创建和调用。
  • 熟练掌握函数、触发器和程序包的创建和使用。
  • 理解存储过程和函数在使用过程中的联系和差异。

知识点

  • 存储过程(存储过程的创建与调用、三种参数模式(in/out/in out)
  • 三种传递参数的方法)
  • 函数(创建与调用)
  • 触发器(触发器概述、分类与创建、语句级触发器、行级触发器)
  • 程序包(程序包规范、程序包主体)。

章节

  • 7.1.1,7.1.2,7.2,7.3.1,7.3.2,7.3.3,7.4.1,7.4.2

set serveroutput on 设置输出信息

二、存储过程、触发器和程序包

参考文章

1、存储过程

  • 特点
    命名的PL/SQL块
    保存在数据库中,不可以被SQL语句直接调用

  • 调用

  • execut(exec)存储过程名:
    该命令只可在SQLPLUS里使用
  • call 存储过程名() :
    call是sql命令,任何可视化工具都可以使用,但是存储过程名后得接括号,无论有没有参数
  • 创建
    CREATE OR REPLACE procedure 存储过程名(参数1,参数2,…参数n) is/as
    is as可以互换

  • 参数

  • IN模式参数
    只能被存储过程读取
    IN模式参数类型不能指定长度。
    传参的三种方式:按名称(=>)、按位置、混合
  • out模式参数
    通过out返回参数值
    调用或执行这个存储过程时,我们需要定义变量来保存两个参数
  • in out模式参数
  • 删除
    drop procedure 存储过程名;

2、函数

创建函数与存储过程都是编译后放在内存供用户使用

  • 创建:
    create or replace function 函数名称(参数1 参数1类型,参数2 参数2类型)
    return 函数的返回值类型 is
    函数的内部变量(可选项);
    调用
    调用函数时要用表达式,而存储过程不用
  • 删除
    drop function 函数名

3、触发器

  • 语法格式
create or replace trigger 触发器名字
  before/after/instead of 触发事件
  on 触发体
  for each row when 触发条件
  //指定触发器为行级触发器
    begin
     sql语句
end 触发器名字;
  • 分为五种类型
  • 行级触发器:
    for each row
    常和create sequence 创建序列一同使用
    当DML语句对每一行数据进行操作时都会引起该触发器
  • 语句级触发器:
    无论DML影响多少行数据,其所引起的触发器仅执行一次
  • 替换触发器:
    通过在替换触发器编写适当的代码对构成视图的基表进行操作
    定义在视图上的触发器,用来替换所使用的实际语句的触发器
  • 用户事件触发器:
    用户登录到数据库或者使用ALTER语句修改表结构等事件的触发器
  • 系统事件触发器:
    只Oracle数据库系统的事件中进行的触发器,如Oracle实例的启动与关闭

4、程序包

分为程序包规范和程序主体

  • 程序包规范
    create or replace package 程序包名 is
  • 程序主体
    create or replace package body 包名 is

删除程序包

  • drop package 包名

总结

小小励志

有些事你现在不做,一辈子都不会做了。
如果你想做一件事,全世界都会为你让路。
《搭车去柏林》

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值