gpt4 book ai didi

Oracle 触发器可以是另一个数据库对象的父对象吗?

转载 作者:行者123 更新时间:2023-12-02 06:39:00 26 4
gpt4 key购买 nike

我正在尝试找到一个触发器为 REFERENCED_TYPE 的场景在DBA_DEPDENDENCIES表,这意味着数据库中存在依赖于TRIGGER的对象。会有这样的场景吗?

每当我创建一个调用函数的触发器或调用将触发触发器的 DML 的函数时,我都会看到 TRIGGER 是子对象 (TYPE),但不是父对象 (REFERENCED_TYPE)。

最佳答案

需要引用触发器(隐式引用,您不能显式引用(调用)触发器)才能出现在 referenced_typedba_dependencies栏目数据字典 View 。

Can there be such a scenario ?

这是我现在能想到的一个(您需要使用 Oracle 11g 或更高版本)。您创建几个相同类型(相同时间点)的触发器并指定触发顺序:follows <<trigger_name>>precedes <<trigger_name>>

--drop table foo purge;

create table foo(c1 number);

create or replace trigger tr_foobi_1
before insert on foo
for each row
begin
null;
end;
/

create or replace trigger tr_foobi_2
before insert on foo
for each row
follows tr_foobi_1
begin
null;
end;
/

column name format a10;
column type format a10;
column referenced_name format a17;
column referenced_type format a17;

select name
, type
, referenced_name
, referenced_type
from dba_dependencies
where referenced_type = 'TRIGGER';

Result:

NAME TYPE REFERENCED_NAME REFERENCED_TYPE
---------- ---------- ----------------- -----------------
TR_FOOBI_2 TRIGGER TR_FOOBI_1 TRIGGER

关于Oracle 触发器可以是另一个数据库对象的父对象吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40933790/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com