子程序:
子程序是已命名的pl/sql 块,他们存储在数据库中,可以为他们指定参数,可以从任何数据库客户端和应用程序中调用他们,子程序包括存储过程和函数。(Oracle为了方便管理代码块,将代码块封装到一个特定的结构体之中,这样的结构体在Oracle之中被称为子程序)
子程序的各个部分:
声明部分
可执行部分
异常处理部分(可选)
格式
过程: 执行某些操作
函数: 执行操作并返回值
过程的三种模式:
in :用于接受调用程序的值,默认的参数模式
out : 用于向调用程序返回值
in out: 用于接受调用程序的值,并向调用程序返回更新的值
程序包:
1、程序包是对 相关过程,函数,变量,游标和异常等对象的封装
2、程序包由规范和主体两部分组成
1)、 规范:声明程序包中公共对象。包括类型,变量,常量,异常,游标规范和子程序规范等
2)、主体:声明程序包私有对象和实现在包规范中声明的子程序和游标
程序包中的游标:
1、游标的定义分为 游标规范和游标主体两部分
2、在包规范中声明游标规范时必须使用 return 子句指定游标的返回类型
3、return子句指定的数据类型可以是:
——用%rowtype 属性引用表定义的记录类型
——程序员定义的记录类型
触发器:
1、触发器是当特定事件出现时自动执行的存储过程(包括 DML 和 DDL 语句)
2、触发器不能被显示调用
3、功能:
——自动生成数据
——自定义复杂的安全权限
——提供审计和日志记录
——启用复杂的业务逻辑
4、触发器分为DML触发器,DDL触发器和数据库级触发器三种
DML触发器类型:
1)、行级触发器
2)、语句级触发器
3)、模式触发器
5、创建触发器语法格式:
CREATE [OR REPLACE] TRIGGER trigger_name
AFTER | BEFORE | INSTEAD OF
[INSERT] [[OR] UPDATE [OF column_list]]
[[OR] DELETE]
ON table_or_view_name
[REFERENCING {OLD [AS] old / NEW [AS] new}]
[FOR EACH ROW]
[WHEN (condition)]
pl/sql_block;
触发器由三部分组成:
1)、触发器语句(事件)
定义激活触发器的 DML 事件和 DDL事件
2)、触发器限制
执行触发器的条件,该条件必须为真才能激活触发器
3)、触发器操作(主体)
包含一些sql 语句和代码,他们在发出了触发器语句 且触发器限制的值为真时 运行
6、启用触发器
SQL> ALTER TRIGGER aiu_itemfile DISABLE;
7、禁用触发器
SQL> ALTER TRIGGER aiu_itemfile ENABLE;
8、删除触发器
SQL> DROP TRIGGER aiu_itemfile;
本文发布于:2024-01-29 01:03:55,感谢您对本站的认可!
本文链接:https://www.4u4v.net/it/170646143611596.html
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。
留言与评论(共有 0 条评论) |