子程序和程序包以及触发器和内置程序包

阅读: 评论:0

子程序和程序包以及触发器和内置程序包

子程序和程序包以及触发器和内置程序包

子程序:

        子程序是已命名的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 条评论)
   
验证码:

Copyright ©2019-2022 Comsenz Inc.Powered by ©

网站地图1 网站地图2 网站地图3 网站地图4 网站地图5 网站地图6 网站地图7 网站地图8 网站地图9 网站地图10 网站地图11 网站地图12 网站地图13 网站地图14 网站地图15 网站地图16 网站地图17 网站地图18 网站地图19 网站地图20 网站地图21 网站地图22/a> 网站地图23