请问oracle中trigger的种类和用法? 请问oracle中trigger的种类和用法? 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 CREATE OR REPLACE TRIGGER trg_drop_table BEFORE DROP ON DATABASE declare PRAGMA AUTONOMOUS_TRANSACTION; coun number;BEGIN for c1 in (select e.table_name from user_tables e) loop IF upper(ora_dict_obj_name()) = c1.table_name THEN PETL_PUB_FUN.INSERT_ETL_LOG(PETL_PUB_FUN.LOCALNET, '安全控制', '安全控制', '主机: ' || SYS_CONTEXT('USERENV', 'HOST') || ' IP:' || SYS_CONTEXT('USERENV', 'IP_ADDRESS') || '试图删除' || ora_dict_obj_name() || '表', '已记录', 2, SYSDATE, SYSDATE); select count(*) into coun from etl_table e where e.table_name = c1.table_name; if coun > 0 then raise_application_error(num => -20000, msg => '主机:' || SYS_CONTEXT('USERENV', 'HOST') || chr(13) || 'IP:' || SYS_CONTEXT('USERENV', 'IP_ADDRESS') || '试图删除' || ora_dict_obj_name() || '表,系统已记录'); end if; END IF; end loop;END; 帽子太大了。LZ可以先baidu一下相关内容,做两个例子,过程中出现问题再来这里提问。 种类:1.系统触发器2.对象触发器其中对象触发器按触发方式分:1.DDL触发器2.DML触发器 关于oracle distinct语句排序的问题,谁熟悉,进来看看 plsql中的number問題 sqlldr时报错文件没有找到 pl/sql执行sql脚本的问题 不能配置首先身份证明,解决问题后保证结贴!!! 动态执行SQL语句出现“并非所有变量都已关联”的错误,详情内有介绍 SVRMGRL和SQLPLUS的区别和分工 ##《简单问题》插入日期时出错,为什么??? 一个数据表的3个字段跟另外一个数据表关联,应该如何select? 值传递 问一个构造字符串的问题 oracle 无法启动
BEFORE DROP ON DATABASE
declare
PRAGMA AUTONOMOUS_TRANSACTION;
coun number;
BEGIN
for c1 in (select e.table_name from user_tables e) loop
IF upper(ora_dict_obj_name()) = c1.table_name THEN
PETL_PUB_FUN.INSERT_ETL_LOG(PETL_PUB_FUN.LOCALNET,
'安全控制',
'安全控制',
'主机: ' || SYS_CONTEXT('USERENV', 'HOST') ||
' IP:' ||
SYS_CONTEXT('USERENV', 'IP_ADDRESS') ||
'试图删除' || ora_dict_obj_name() || '表',
'已记录',
2,
SYSDATE,
SYSDATE);
select count(*)
into coun
from etl_table e
where e.table_name = c1.table_name;
if coun > 0 then
raise_application_error(num => -20000,
msg => '主机:' ||
SYS_CONTEXT('USERENV', 'HOST') ||
chr(13) || 'IP:' ||
SYS_CONTEXT('USERENV', 'IP_ADDRESS') ||
'试图删除' || ora_dict_obj_name() || '表,系统已记录');
end if;
END IF;
end loop;END;
1.系统触发器
2.对象触发器其中对象触发器按触发方式分:
1.DDL触发器
2.DML触发器