1、oracle 9i;
2、windows xp;
3、网络正常;
4、数据库中创建了一触发器,如下:(创建成功)create or replace trigger tr_tempupdate
after update of USER_PASSWORD on user_base
referencing new as new_value
for each row
declare
-- local variables here
begin
insert into TBWEBTOFORUMTEMP(user_id,user_password,USER_NAME,USER_TYPE,OPERATETYPE)values(:new_value.user_id,:new_value.user_password,:new_value.USER_NAME,:new_value.USER_TYPE,1);
end tr_tempupdate;5、写更新语句:Update User_base set user_password='123211' where user_name='hoho'(更新成功)
6、写查询语句:select * from tbwebtoforumtemp(查询成功:有期望的数据)
7、再写更新语句:Update User_base set USER_JIFEN=USER_JIFEN+1 where user_name='hoho'(执行此更新语句报错)
8、第7步报的错误:ora-03113:通信通道的文件结束 、 ora-03114:未连接到oracle
9、问题:第4步中的触发器我是建立在user_base 表的USER_PASSWORD字段上的,为什么我更新user_base 表的其他字段时就报错呢?忘各位有识之士不腻赐教!!!
2、windows xp;
3、网络正常;
4、数据库中创建了一触发器,如下:(创建成功)create or replace trigger tr_tempupdate
after update of USER_PASSWORD on user_base
referencing new as new_value
for each row
declare
-- local variables here
begin
insert into TBWEBTOFORUMTEMP(user_id,user_password,USER_NAME,USER_TYPE,OPERATETYPE)values(:new_value.user_id,:new_value.user_password,:new_value.USER_NAME,:new_value.USER_TYPE,1);
end tr_tempupdate;5、写更新语句:Update User_base set user_password='123211' where user_name='hoho'(更新成功)
6、写查询语句:select * from tbwebtoforumtemp(查询成功:有期望的数据)
7、再写更新语句:Update User_base set USER_JIFEN=USER_JIFEN+1 where user_name='hoho'(执行此更新语句报错)
8、第7步报的错误:ora-03113:通信通道的文件结束 、 ora-03114:未连接到oracle
9、问题:第4步中的触发器我是建立在user_base 表的USER_PASSWORD字段上的,为什么我更新user_base 表的其他字段时就报错呢?忘各位有识之士不腻赐教!!!
我建立那触发器的目的是其中的user_base表的USER_PASSWORD字段一更新就把更新信息写到另一临时表中
也就是判断能力USER_PASSWORD这个字段的new_value和old_value是否相等,再执行后面的insert 语句,但你的逻辑不是这样写