Tigger代码在Oracle 11G中无法正常工作 [英] Tigger code not working properly in Oracle 11G
本文介绍了Tigger代码在Oracle 11G中无法正常工作的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
我试图创建以下触发器,但它给了我警告:
触发器创建时出现编译错误< b>选择object_name,user into name,p_us from user_objects where object_type ='TABLE';
创建 表 track_cr_dr
(
userid varchar ( 20 ),
ob_name varchar (< span class =code-digit> 50 ),
action varchar ( 8 ),
ac_time varchar ( 50 ),
ac_date 日期
);
创建 或替换触发器创建 或 后, track_create
数据库
声明
ac varchar ( 8 );
name varchar ( 50 );
p_date 日期;
p_time varchar ( 50 );
p_us varchar ( 20 );
开始
选择 sysdate into p_date 来自 dual;
select to_char(sysdate,' HH: MM:SS')进入 p_time 来自 dual;
选择 object_name,用户 进入 name,p_us 来自 user_objects 其中 object_type = ' TABLE';
如果 ' Creating' 然后
ac:= ' CREATE'跨度>;
else
ac:= ' DROP'跨度>;
end if ;
插入 进入 track_cr_dr 值跨度>(p_us,名称,AC,p_time,p_date);
end ;
提前致谢。
解决方案
user
是Oracle中的保留关键字。
尝试更改此行
选择 object_name,用户 进入 name,p_us 来自 user_objects 其中 object_type = ' TABLE';
到此
选择 object_name, user 进入名称,p_us 来自 user_objects 其中 object_type = ' TABLE';
Hi,
I was trying to create the following trigger but it's giving me warning :
Trigger created with compilation error on select object_name ,user into name,p_us from user_objects where object_type='TABLE';
create table track_cr_dr
(
userid varchar(20),
ob_name varchar(50),
action varchar(8),
ac_time varchar(50),
ac_date date
);
create or replace trigger track_create
after create or drop on DATABASE
declare
ac varchar(8);
name varchar(50);
p_date date;
p_time varchar(50);
p_us varchar(20);
begin
select sysdate into p_date from dual;
select to_char(sysdate,'HH:MM:SS') into p_time from dual;
select object_name ,user into name,p_us from user_objects where object_type='TABLE';
if 'creating' then
ac:='CREATE';
else
ac:='DROP';
end if;
insert into track_cr_dr values(p_us,name,ac,p_time,p_date);
end;
Thanks in advance.
解决方案
user
is a reserved keyword in Oracle.
Try to change this line
select object_name ,user into name,p_us from user_objects where object_type='TABLE';
to this
select object_name, "user" into name, p_us from user_objects where object_type = 'TABLE';
这篇关于Tigger代码在Oracle 11G中无法正常工作的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!
查看全文