哪为什么在触发器中使用没有传参数
时间: 2023-09-30 19:11:28 浏览: 35
在触发器中使用 `CTXSYS.DRVDML.C_UPDTAB.DELETE` 存储过程时,可以不传入参数,因为触发器中已经有了 `OLD` 和 `NEW` 伪行记录变量,可以从中获取要删除的文本索引名称和包含该索引的表名。
例如,以下是一个在触发器中使用 `CTXSYS.DRVDML.C_UPDTAB.DELETE` 存储过程的示例:
```sql
CREATE OR REPLACE TRIGGER my_trigger
AFTER DELETE ON my_table
FOR EACH ROW
BEGIN
CTXSYS.DRVDML.C_UPDTAB.DELETE('my_index', 'my_table');
END;
```
在上述示例中,触发器 `my_trigger` 会在 `my_table` 表中删除记录时触发,然后调用 `CTXSYS.DRVDML.C_UPDTAB.DELETE` 存储过程删除名为 `my_index` 的文本索引。由于触发器中已经有了 `OLD` 伪行记录变量,因此可以从中获取 `my_table` 表的名称,因此不需要在存储过程中传入该参数。
相关问题
jekins中触发器的作用是什么
Jenkins中的触发器用于触发构建作业的执行。它们是一种配置选项,允许您设置构建作业何时应该运行的规则。Jenkins支持多种类型的触发器,包括定期触发、SCM变更触发、远程触发、参数化触发等。
例如,您可以使用定期触发器设置每天凌晨2点运行构建作业。或者,您可以使用SCM变更触发器在代码库中发生更改时自动触发构建作业。远程触发器允许您通过HTTP请求触发构建作业,而参数化触发器则允许您使用特定的参数配置来触发构建作业。
通过使用适当的触发器,您可以确保构建作业在需要时自动运行,并且不会错过任何重要的更新或更改。
数据库中存储过程和触发器有什么不同?
存储过程和触发器都是数据库中的编程对象,但是它们的作用不同。
存储过程是一组预定义的 SQL 语句集合,可以被多次调用和重复使用。它们通常用于执行特定的任务,如数据查询、更新、插入、删除等,可以帮助用户简化复杂的数据库操作。存储过程还可以通过参数传递来接收和返回数据。
触发器是一种特殊的存储过程,它是在数据库表上定义的,当特定的事件发生时,该触发器会自动执行。触发器通常用于实现数据完整性和一致性,例如在数据插入、更新或删除时执行特定的操作。
因此,存储过程和触发器在作用和使用上有所不同,但它们都是数据库中非常有用的编程对象。