PL/SQL对象

共有6种常用的PL/SQL对象类型:过程、函数、程序包、程序包主体、触发器和类型主体。

上述所有PL/SQL对象都是存储在数据字典内的模式对象。过程和函数通常是用于执行重复指令的子程序。程序包是过程和函数的集合,结合在一起方便管理。触发器时无法打包的对象类型,与表相关联,在针对表执行任何适当的DML时运行。

1.过程与函数

过程是一个执行某些动作的代码块。我们可以为过程定义许多参数。在调用过程时,这些参数会被替换成指定的实际参数。参数可以为IN型(用于将数据传入过程)、OUT型(由过程进行更改,执行代码后从过程中传出新值)以及IN-OUT型(一个变量实现上述两种用途)。在过程内部,我们可以定义任意数量的变量,与参数不同的是,这些变量对于过程来说是私有的。要运行一个过程,既可以在PL/SQL程序块内部调用这个过程,也可以使用交互式的EXECUTE命令。
函数(function)与过程的概念相似,但并不具有OUT型实参,并且无法使用EXECUTE命令来调用。函数通过RETURN语句返回一个值。
函数能够完成的工作,过程同样可以完成。作为较小的代码块,函数通常用于比较简单的操作,并且可以被多次使用。过程通常用于将代码分为若干模块,并且可以包含较长且复杂的进程。

2.程序包

为了将相关联的过程与函数集合在一起,编程人员创建了程序包。程序包(package)由规范和主体这两个对象组成。程序包规范列出了程序包中的各种函数与过程以及他们的调用规范(也就是形参及其数据类型),此外还定义了程序包中所有过程与函数都可以访问的常量与变量。程序包主体包含实现这个程序包的PL/SQL代码,也就是创建过程与函数的代码。如下所示,使用create package命令可以创建一个程序包规范:
create or replace package numbers as  function odd_even(v1 number) return varchar2;
procedure ins_ints(v1 in number);
end numbers;
接下来,使用create or replace package body语句 创建单独的函数与过程,从而可以创建程序包主体。
oracle数据库具有几百个标准的PL/SQL程序包。这些补充的程序包一般在创建数据库时创建。如果希望调用程序包中的过程,那么必须在过程名前面加上程序包的名称。例如,执行下面的命令能够运行NUMBERS程序包中的ODD_EVEN过程:
exec numbers.odd_even(5);
程序包必须存在于与用户关联的模式中,否则,必须在程序包名之前加上模式名。用户需要拥有程序包上的EXECUTE权限。

3.数据库触发器

数据库触发器是一种特殊的PL/SQL对象,因为我们无法手动调用这种对象。在完成某个特殊的动作或出现某种特殊情况时(也就是发生触发事件时),就会自动运行(激发)一个触发器。触发事件可能有很多。对于其中很多触发事件来说,可以将触发器配置为在事件之前或之后激发。此外,我们还可以为相同的触发事件定义before触发器和after触发器。对于插入、更新或删除记录时激发的DML触发器来说,我们可以配置受到影响的每条记录都被激发一次,或者执行每条语句时都被激发一次。
所有触发器都有一个共同的特性,即激发触发事件的用户完全不能控制触发器的执行,甚至可能不了解所激发的触发器。这种特性使得触发器非常适用于审核用户动作和实施安全。
触发器具有广泛的应用,包括:
1.审核用户的动作:触发器能够捕获与指定动作和用户相关的完整信息,并且能够写入某个审核表。
2.执行复杂的编辑:某条记录上的一个动作可能需要其他表上的许多关联动作。触发器可以自动执行这些动作。
3.安全性:触发器可以检查时间、用户的IP地址、用户运行的程序以及限制用户会话的其他因素。
4.实施复杂的约束:对于一个表上的约束来说,某个动作可能毫无问题,但是对于其他的表来说,必须根据这些表的内容来验证该动作。
注意:我们只能通过触发事件来运行触发器。

参考资源链接:[PL/SQL Developer 8.0中文手册:从安装到调试全方位教程](https://wenku.youkuaiyun.com/doc/1uyc0x0ybv?utm_source=wenku_answer2doc_content) PL/SQL Developer 8.0是一个强大的Oracle数据库开发工具,它不仅支持PL/SQL对象的开发,也提供了创建和管理其他数据库对象的功能,包括表、视图等。首先,确保你已经根据《PL/SQL Developer 8.0中文手册:从安装到调试全方位教程》中的安装指南成功安装了该工具。接下来,你可以按照以下步骤在PL/SQL Developer中创建和管理非PL/SQL对象: 1. **创建表**: - 打开PL/SQL Developer,点击菜单栏中的‘文件’,选择‘新建’,然后选择‘对象’。 - 在对象编辑器中选择‘表’,输入表名和描述信息。 - 在列标签页中,添加新列,指定列名、数据类型等信息。 - 设定主键、外键等约束,以确保数据的完整性和一致性。 - 完成后,点击保存按钮,并运行SQL脚本以在数据库中创建表。 2. **创建视图**: - 同样,在‘文件’菜单中选择‘新建’,然后选择‘视图’。 - 在视图编辑器中,编写SQL语句来定义视图,可以包含复杂的SQL查询,以展示特定的数据集。 - 保存视图并运行SQL脚本,视图将被创建并存储在数据库中。 3. **管理非PL/SQL对象**: - 管理视图和表等非PL/SQL对象,可以通过PL/SQL Developer的‘数据库浏览器’或‘对象浏览器’来完成。 - 在对象浏览器中,可以找到已创建的表和视图,右键点击选择相应的选项,如‘编辑’、‘删除’或‘查看数据’。 - 对于需要调整的对象,可以在编辑器中修改对象定义,并重新保存和执行SQL脚本。 通过上述步骤,你可以在PL/SQL Developer中创建和管理包括表和视图在内的多种非PL/SQL数据库对象。这些操作都将直接反映到你的Oracle数据库中。为确保能够熟练运用这些工具,建议仔细阅读《PL/SQL Developer 8.0中文手册:从安装到调试全方位教程》中相关的章节,以获得更深入的理解和更多实用技巧。 参考资源链接:[PL/SQL Developer 8.0中文手册:从安装到调试全方位教程](https://wenku.youkuaiyun.com/doc/1uyc0x0ybv?utm_source=wenku_answer2doc_content)
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值