oracle触发器问题

 

id pid
1 0
2 1
3 1

比如oracle表中数据是这样的,怎么定义触发器,比如,更改id=1的id时,使id=2,3的行的pid跟着更改

还有删除id=1的行,pid为1的行也删除

liuyinhuan0409
liuyinhuan0409 楼主来了也把问题给结了呗
大约 7 年之前 回复

2个回答

[code="sql"]
create or replace trigger trigger_test
after update or delete on whisky
referencing old as old new as new
for each row
declare
PRAGMA AUTONOMOUS_TRANSACTION;
-- local variables here
begin
--for update
if updating then
update whisky set pid = :new.id where pid = :old.id;
else
--for delete
delete from whisky where pid = :old.id;
end if;
commit;
end trigger_test;

[/code]
我测试是ok的,不知是否满足你的需求。。。

liuyinhuan0409
liuyinhuan0409 啊哦啊哦,谢谢
大约 7 年之前 回复
dzq584462393
dzq584462393 你的回答我怎么没收到信息呢,我还以为你没回呢>对不起啊
大约 7 年之前 回复
liuyinhuan0409
liuyinhuan0409 :x :( :x :(
大约 7 年之前 回复
liuyinhuan0409
liuyinhuan0409 忽悠我咧。。。 :cry: :cry: :cry:
大约 7 年之前 回复
liuyinhuan0409
liuyinhuan0409 这个能满足你需求么? 第3行:用来取出trigger触发前、后的新、老值;第6行:声明一个自治事物,一般对本table的操作的trigger需要使用自治事物,不然会引发死锁等其他问题。
大约 7 年之前 回复
dzq584462393
dzq584462393 受不了了,大神就是大神,想请教下3,6行是什么意思,多帮忙下,反正分给你了
大约 7 年之前 回复

[code="java"]
create or replace trigger trig_test_tb
after delete on test_tb
for each row
declare
pragma autonomous_transaction;
begin
delete from test_tb where pid=:old.id;
commit;
end;
[/code]

Csdn user default icon
上传中...
上传图片
插入图片
抄袭、复制答案,以达到刷声望分或其他目的的行为,在CSDN问答是严格禁止的,一经发现立刻封号。是时候展现真正的技术了!
其他相关推荐
Oracle触发器问题
想实现一个触发器,在表LGT_RY_NB插入一条数据前,判断这条数据的SFZH是否like'%111111%' 如果是的话,把这条数据插入到LGT_RY_NB_BackUp表中,然后从LGT_RY_NB中根据ZJHM这个主键删除这条记录(或者禁止执行插入操作),否则的话不做任何操作。rnrn就是判断一条数据的SFZH字段是否like 111111 是的话不让其插入数据库rncreate or replace trigger TRG_ChoseData After INSERT rnON LGT_RY_NB FOR EACH ROWrnDECLARErn rn FOUND BOOLEAN;rn rnrnBEGINrn rn IF :New.ZJHM Like '%1111111%'rn Then rn Delete From LGT_RY_NB Where ZKLSH=:new.zklsh;rn Insert Into LGT_RY_NB_BackUp (ZKLSH,XM,SFZH) Values (:new.ZKLSH,:new.XM,:new.SFZH);rn rn END IF;rnrn-- ERRORS HANDLINGrnEXCEPTIONrn WHEN INTEGRITY_ERROR THENrn RAISE_APPLICATION_ERROR(ERRNO, ERRMSG);rnEND;rnrn我的问题是如果Before INSERT ON LGT_RY_NB FOR EACH ROW 此时执行Delete From LGT_RY_NB Where ZKLSH=:new.zklsh;没有意义,因为这时候还没插入数据,可是如果After INSERT ON LGT_RY_NB FOR EACH ROW 又不能用 ;new 提取主键 rn
Oracle中触发器问题
create or replace trigger update_xskcrnbefore update on xs_kcrnfor each row rnbegin rndeclare rns integer(6);rnbegin rnselect count(*) into s from xs where xs.xh=:new.xh;rnend;rnif s<>0 then update xs_kc set xh=:new.xh where xh=:old.xh;rnend if;rnend update_xskc;rn/rnrn意思就是说在向xs_kc(学生课程)表中更新数据时(更新xh即学号)如果要更新的数据(:new.xh)在xs(学生)表中有的话,就进行更新。用sqlplus执行时提示出错,上边说“此上下文中不允许表, 视图或序列引用 'S'”。rn请高人解答如何修改代码
oracle 触发器的问题?
在19.104.24.72 库里有个用户 test_72 往此用户的test 表写入数据的时候,怎么利用触发器将数据写入到另一台远程机器上。目标库的地址 19.104.24.10, 用户名 test_10, 密码 123,实例名orcl。主要是database links 怎么写。琢磨了几个小时,还没解决?
关于oracle触发器问题
问题:需要将Adt_Log表的log_date_time字段最大值修改到pat_visit1表中的MOVE_DATE4 字段;rn备注:1.pat_visit1表 和 Adt_Log表 都有 PATIENT_ID 和 visit_id 字段,可以做关联;rn2.Adt_Log 表的 log_date_time 时间字段,当存在多条数据时,需要取最大值;rn以下为本人(新人)写的触发器,感觉用不了,求大神们指点,内附报错提示(在Adt_Log新建修改或新建都报错)rnrnrncreate or replace trigger 修改adt字段 after update of log_date_time on Adt_Log rnfor each rowrnbeginrnupdate pat_visit1 arnset MOVE_DATE4 = (select max(log_date_time) from Adt_Log b where b.PATIENT_ID = a.PATIENT_ID and b.visit_id = a.visit_id);rnend;rn
ORACLE触发器的问题
我要使B表和A表保持一致rn使用触发器。rn数据入B表rnA表的字段与B表不完全一致,rn其中有的项使用不同的字典表,需要转换rn有的项需要合并rnrn请问这个触发器怎么写.rn谢谢!
关于Oracle 触发器的问题
我想写个触发器 实现下面的功能 我有一个student表 里面有学号 姓名和出生日期 我想通过查询语句查询一个人 要他输出来有他的年龄 年龄是由 系统日期减去生日得到 要求整数 望各位帮帮忙 小弟在此谢谢了
oracle 触发器问题
create or replace trigger trig_delrn before delete on sendedmsg rn for each rowrnbeginrn insert into messagern select * from sendedmsg where sendedmsg.id=:old.id;rnend trig_del;rnrn请各位帮忙,这个触发器为什么编译能通过,但触发的时候却提示提示sendedmsg发生了变化,触发器/函数不能读取,这是为什么,请各给帮忙,应该怎么写才对啊
oracle增加触发器的问题
create trigger trg_test on StaffName--增加触发器rnfor insertrnasrnbeginrndeclare @StaffName varchar(20)rnselect @StaffName=StaffName from insertedrninsert into score(StaffName,sscore)values(@StaffName,0)--分数表rnendrngornrn这是sqlserver的一个增加触发器,请问该成oracle的怎么写?
ORACLE触发器问题
触发器如下:rnCREATE OR REPLACE TRIGGER "UPDATE_H004H003" AFTERrnUPDATE ON "SM_DEPARTMENT" FOR EACH ROWrndeclarernflag varchar(2);rnsjjg varchar(20);rnbm varchar(50);rnBEGINrn if (:old.depflag='0')rn thenrn update h003 set h00300=rpad(:new.depbm,20,'0'),h00301=:new.depbm,H00348=:new.pptr,H00303=:new.depname where rtrim(h00300,'0')=:new.depbm;rn end if;rnrn if (:old.depflag='1')rn thenrn --select depbm into bm from sm_department where depbm=:new.depbm;rn --select depflag into flag from sm_department where depbm=bm;rn bm:=:new.depbm;rn flag:=:new.depflag;rn while (flag='1') looprn beginrn select pptr into sjjg from sm_department where depbm=bm;rn select depbm into bm from sm_department where depbm=sjjg;rn select depflag into flag from sm_department where depbm=bm;rn end;rn end loop;rn update h004 set h00400=rpad(:new.depbm,20,'0'),H00402=:new.depbm,H00414=:new.pptr,H00401=bm,H00404=:new.depname where rtrim(h00400,'0')=:new.depbm;rn end if;rnend;rnrn执行后,结果报错,如下:rnora-04091:表EHR.SM_DEPARTMENT发生了变化,触发器/函数不能读rnORA-06512:在“EHR.UPDATE_H004H003”,LINE 19rnORA-04088:触发器'EHR.UPDATE_H004H003'执行过程中出错rnrn出错的行为:"select pptr into sjjg from sm_department where depbm=bm;"rn
Oracle建触发器问题
create table M_TRANSACTION_TYPErn(rn OPERATION_ID number primary key,rn OPERATION_TYPE number,rn OPERATION_TIME date,rn CRM_ID varchar2(36), rn);rnrncreate sequence M_TRANSACTION_TYPE_SEQ nocycle;rnrncreate or replace M_TRANSACTION_TYPE_TRIGGERrnbefore insert on M_TRANSACTION_TYPErnfor each rowrnbeginrnselect M_TRANSACTION_TYPE_SEQ.NEXTVAL into :new.OPERATION_ID from dual;rnend;rnrnrn请问这个有什么问题,执行的时候出现,执行完毕,但带有警告;导致我下面sql脚本无法执行。rn
oracle 触发器的问题!
RT。。rn我需要一个触发器。。两个表。。rn当A表有增删改操作的时候,B表会根据A表中的一个字段来更新B表中对应类型的更新时间。。rn这个要怎么写啊?rn大题样子应该是这样rncase ?????(这个条件怎么得到?)rnwhere then rnrn
oracle关于触发器的问题
T_user表rn字段名 字段类型 字段长度 备注rn Id Number 4 用户编号rn Name Varchar2 20 用户名rn Password Varchar2 14 用户密码rn Sex Char 4 性别rn Age Number 3 年龄rn Email Varchar2 30 邮箱rn QQ Number 20 QQrn RegTime DATE 注册时间rn UserRank Varchar2 10  用户等级(根据积分判定)rnIf boardMgr Boolean 是否是版主rnUserPoint Number 4 用户积分数据rnrnT_ board 表rn字段名 字段类型 字段长度 备注rnId Number 4 版块编号rnboardTopic Varchar2 20 版块名称rnboardDesc Varchar2 300 版块描述rnboardMgr Varchar2 20 版主用户名rnTotalTopic Number 4 发表的论题总数rnrnT_post表rn字段名 字段类型 字段长度 备注rnid Number 4 提交条目IDrnusername Varchar2 20 提交用户名rntype Char 2 类型,如果是论题则为‘Q’,回答问题为‘A’rnparentid Number 4 父条目ID,如果是回答问题条目,则存储对应论题的IDrnTitle Varchar2 30 提交条目标题rnContent Varchar2 500 提交条目内容rnifKeyword Boolean 是否有设置关键词rnifBest Boolean 最佳回答标志rnendTime Date 截题日期rnifEnd Boolean 是否截题标志rnupvotes Number 5 赞成票rndownvotes Number 5 反对票rnBoardid Number 4 所属版块编号rnrnT_keywords表rn字段名 字段类型 字段长度 备注rnid Number 4 关键词IDrnword Varchar2 20 关键词rnPostID Number 4 关联的提交条目IDrntitlecount Number 3 在标题中出现的次数rncontentcount Number 3 在内容中出现的次数rnrnT_UserPoint表rn字段名 字段类型 字段长度 备注rnId Number 4 编号rnpoints Number 10 总积分rnqposts Number 5 提交问题数量rnaposts Number 5 提交回答数量rnaselects Number 5 被选中最佳答案数量rnqupvotes Number 5 被赞成的问题数量rnqdownvotes Number 5 被反对的问题数量rnaupvotes Number 5 被赞成的回答数量rnadownvotes Number 5 被反对的回答数量rnbonus Number 5 奖励数rnrnT_PostPoint表rn字段名 字段类型 字段长度 备注rnId Number 4 编号rnPostid Number 4 论题IDrnaposts Number 5 回答赠予积分数rnaselects Number 5 最佳答案赠予积分数rnqupvotes Number 5 为论题投赞成票赠予积分数rnqdownvotes Number 5 为论题投反对票赠予积分数rnaupvotes Number 5 为论题回答投赞成票赠予积分数rnadownvotes Number 5 为论题回答投反对票赠予积分数rnrnT_PostVote表rn字段名 字段类型 字段长度 备注rnId Number 4 编号rnPostid Number 4 提交条目名(论题和回答)rnusername Varchar2 20 用户名rnVote Number 1 用户投票,用“1”和“-1”来标识,如果是1则表明用户投的是赞成票,反之,如果是“-1”,则是反对票rnrn[color=#FF0000]--aftUpdBestAnswer_t:在修改一个回帖的“最佳答案标志”为true后,rn--将该回帖对应的帖子的状态设置为“截题”,并将截题日期修改为当前日期”[/color]rnrncreate or replace trigger aftUpdBestAnswer_trnbefore update on T_post for each rowrnbeginrn if :new.ifBest= 'true' thanrn update set :new.ifEnd = '截题',:new.endTime= TO_CHAR(SYSDATE(),'YY/MM/DD HH24:MI:SS');rn end if;rnend;rnrn[color=#FF0000]--aftPostAnswer_t :在用户回帖后,将回帖用户的回帖数自动增1,rn--回帖积分自动增加(参考论题帖赠与积分的回帖积分)[/color]rnrnrnrnrn[color=#FF0000]--aftVote_t :在用户投票后(包括论题帖、回帖),rn--自动修改用户的积分(请注意根据投票是赞成票或者是反对票区别对待,rn--参考论题帖赠与积分表)。[/color]rnrn我做第一个就遇到困难了!求帮助 红色字体的是题目! 第一个我做了,可是有问题!
Oracle 触发器问题
CREATE OR REPLACE TRIGGER REDCAT_DEV.TRG_UPDATE_SUPPLIER_MASTER_HDR AFTERrn UPDATE ON T_VENDOR_HDRrn REFERENCING OLD AS OLDROW NEW AS NEWROWrn FOR EACH ROWrn DECLARErn V_LINE_NO NUMBER(10);rn V_REVISION_NO NUMBER(10);rn V_USER VARCHAR2(35);rn BEGINrn IF((:OLDROW.UPDATE_USER IS NULL) OR (:OLDROW.UPDATE_USER ='')) THENrn V_USER := :NEWROW.UPDATE_USER;rn ELSErn V_USER := :NEWROW.UPDATE_USER;rn END IF;rn rn IF (:OLDROW.SUN_ACCOUNTING_CODE <> :NEWROW.SUN_ACCOUNTING_CODE) THENrnrn SELECT NVL(MAX(LINE_NO)+1,1) INTO V_LINE_NOrn FROM T_VENDOR_HISTrn WHERE COMPANY_CODE=:OLDROW.COMPANY_CODE;rnrn SELECT COUNT(*)+1 INTO V_REVISION_NOrn FROM T_VENDOR_HISTrn WHERE COMPANY_CODE=:OLDROW.COMPANY_CODErn AND CHANGES='Sun Accounting Code'rn AND VENDOR_CODE = :NEWROW.VENDOR_CODE;rnrn INSERT INTO T_VENDOR_HISTrn (COMPANY_CODE, VENDOR_CODE, LINE_NO, SYSTEM, CHANGES, CHANGE_FROM, CHANGE_TO,rn REVISION_NO, DC_IND, DC_DATE, CREATE_USER, CREATE_DATE, UPDATE_USER, UPDATE_DATErn )rn VALUESrn (rn :NEWROW.COMPANY_CODE,:NEWROW.VENDOR_CODE,V_LINE_NO, 'MAIN_CHANGED', 'Sun Accounting Code',:OLDROW.SUN_ACCOUNTING_CODE,rn :NEWROW.SUN_ACCOUNTING_CODE,V_REVISION_NO, 'NO', NULL, :NEWROW.UPDATE_USER, SYSDATE,V_USER,NULLrn );rn END IF;rn rn EXCEPTION rn WHEN OTHERS THENrn RAISE_APPLICATION_ERROR(-20001, 'Exception in TRG_UPDATE_SUPPLIER_MASTER_HDR');rn END;rnrnrnrn这是我的触发器代码,为什么第一次修改时可以,第二次修改记录时报"Unknown property '' 错误.那位大虾帮忙看一下.在线等待.rn
Delphi和Oracle触发器的问题!
我在Oracle中用触发器使其中的序号(XH)字段自动增1,但是在前台Delphi程序中向该表添加新记录时TDBEdit却不能马上返回该值,请问出了关闭该Query控件,再重新打开之外还有没有别的办法?急!
oracle触发器的问题! 急!
在表A中有一字段ID,将该ID字段设为了主键,并且为该ID字段用触发器实现了自动增长,可在向该表插入数据时却报了如下的错:rnrnORA-00001:unique constraint (LWLL.SYS_C005998) violatedrn请教各位这是什么原因?
oracle触发器的问题
[code=HTML]"java"rncreate or replace trigger test02rnafter update on table1rnfor each rowrnwhen (new.status='f' or new.status = 'g')rndeclarerntheTrigerTaskId table1.id%type;rnbeginrnrnselect id into theTrigerTaskId from table1 where task_id = :new.id;//[color=red]这张表是通过task_id自关联的,我的逻辑就是想在新的任务状态发生改变时,改变老的那条任务状态[/color]rnif :new.status = 'f' thenrn update table1 set status='c' where id = theTrigerTaskId;rn elsif :new.status = 'g' thenrn update table1 set status='d' where id = theTrigerTaskId;rn end if;rnend test02;[/code]rn以上是原先的代码,每次都在select那里出错,提示表发生了变化,触发器不能读它。。。。rnrn在网上找了很多,看到一个用[color=red]自治事务[/color]的,就加了 “[color=red]PRAGMA AUTONOMOUS_TRANSACTION;”[/color]在declare里面rnrn然后又报出“[color=red]检测到活动的自治事务处理,已经回退[/color]”rnrn什么问题,大家帮忙看看
oracle自增列触发器问题
CREATE OR REPLACE TRIGGER EMP_TRIGGER BEFORErn INSERT ON ACTINSTANCEBASIC FOR EACH ROW rnwhen (new.ACTIVITYINSTANCEID is null)rnbeginrn select emp_sequence.nextval into: new.ACTIVITYINSTANCEID from dual;rn end;rnrn这个触发器哪不对,我编译时报错误。rnrnrnrn错误:rnrnrnTRIGGER FINIXWORKFLOW.EMP_TRIGGER 编译错误rnrn错误:PLS-00801: 内部错误 [ph2csql_strdef_to_diana:bind]rn行:3rn文本:when (new.ACTIVITYINSTANCEID is null)rnrn错误:PL/SQL: ORA-06544: PL/SQL: 内部错误, 参数: [ph2csql_strdef_to_diana:bind], [], [], [], [], [], [], []rn行:5rn文本:select emp_sequence.nextval into: new.ACTIVITYINSTANCEID from dual;rnrn错误:PL/SQL: SQL Statement ignoredrn行:5rn文本:select emp_sequence.nextval into: new.ACTIVITYINSTANCEID from dual;rn
oracle的触发器问题
现在有两个系统,a系统和b系统,这两个系统的所有表建立在一个数据库为test名称的数据库中,要用到触发器,如果在arnrn 系统中staff表添加一条数据,则在b系统中user表相应的也就会添加一条新的数据,如果修改a系统中的一条数据,则b系统rn rn 中的这条数据也会修改,staff表和user表中有相连的键(training_id),并且training_id字段为staff的主键rnrnrn 请各位帮忙,谢谢!
关于oracle触发器的问题
我建了一个中间表A,唯一主键是flowid,该字段自动生成id。比如A表的结构是A(flowid,a1,a2,a3)。现在我的表B,想建一个insert触发器。当B表插入数据的时候,A表也插入相同的数据。不知道为什么触发器老是有错误,是不是主键flowid自动生成id的无法触发啊,各种大侠救命!!!
oracle触发器插入问题
我有两个表(A表和B表),机构完全相同:A 表建立触发器rn当insert into A(id,name) values('1','zhangsan'); 我只想将name=zhangsan的时候将insert语句插入到B表中而A表不执行操作这个触发器应该怎么实现呢?rn如:rn if :nve.name=‘zhangsan' thenrn insert into B(id,name) values(:nve.id,:nve.name);rn end if;rn可是像我这么写这两个表都有数据呀,我只想让B表中有数据而A表没有,这个触发器应该怎么写呢,谢谢给位了
(急)ORACLE触发器的问题
本人遇到一个关于ORACLE触发器的问题:rn问题描述:rn有两个表 :订单主表,订单子表rnrn订单主表Order:order_id字段rn订单子表order_detail:product_id,product_name,order_idrnrn现在有个需求就是 每插入一条订单后就将这个订单和商品 做成迪卡乘积的形式 插入到 另外一个表 order_product ,结构如下 order_id,product_combornproduct_combo是 product_name组合形成的,例如现在编号为code的订单订了A、B两种商品 那么组合就是 A、B、AB,那么order_product的表里就有三条记录rncode,Arncode,Brncode,A;Brnrn问题的是这样的,当我更新了订单子表后假设把B变成了C,那么 order_product的表里的记录应该变成rncode,Arncode,Crncode,A;Crn我给order_detail定义了更新触发器:rn根据新更新的order_id查询到主表ID,将order_product的此order_id的记录删掉rn然后再根据order_id从order_detail中将商品信息再查询出来,进行组合,首先要select product_id,product_name from order_detail where order_id = :new.order_id。rn问题就出在了这里,数据库提示说order_detail的结构发生了改变,函数或触发器不能读它。rn本人属于数据库菜鸟,请教各位,应该如何解决这个问题?rn
oracle 触发器的问题。
当我执行程序时,把数据存到了A库A表里的时候会触发一个添加数据到B库的B表里。这个应该怎么写?
★★★★★ORACLE触发器的问题★★★★★
表A,每当插入行后,要立即将A中有关数据进行分析统计然后将结果再存入另一表B,rn此时,对于表A而言,触发器内作的操作仅仅是“只读”操作,但是因为涉及到表A多行数据的访问,显然,不可能用":NEW"来满足数据。rn请问,此时能够对于表A作SELECT COUNT(*) WHERE 。。。。。类似的操作吗?rn如果不行,那么,有什么别的解决方法吗?以能够达到表A变化后,立即令B的数据也进行改动。当然,A->B,是有很多变动的规则,必须用SQL才能够完成表达。rn该问题我觉得在实际应用中,也很有实用价值,请高手帮忙,指导!谢谢!
Oracle触发器问题?
有库存和销售两个表,要求当销售表中的销售量增加时,库存表中的库存量自动减少相应的数量rn谢谢各位大虾!!!!!!!!!!
oracle视图触发器问题
问题是这样的我现在有两个表 table_a 和 table_b, 还有一个视图 view_a, 表和视图的结构如下rn[code=SQL]rn-- Create tablerncreate table table_arn(rn a number,rn b varchar2(30),rn c varchar2(30)rn);rn-- Create/Recreate primary, unique and foreign key constraints rnalter table table_arn add constraint PK_table_a primary key (A);rnrn===================================================================rnrn-- Create tablerncreate table table_brn(rn a number,rn b varchar2(30),rn c varchar2(30)rn);rn-- Create/Recreate primary, unique and foreign key constraints rnalter table table_brn add constraint PK_table_b primary key (A);rnrn===================================================================rnrncreate view view_a as select * from table_b;rn[/code]rnrn但我对 table_b 没有任何操作权限,只对 table_a 和 view_a 有操作权限, 我现在要实现的功能是 table_b 中的数据有变化(inser, update, delete)时,就将 table_a 中的记录对应更新, 于是建立了下面这个触发器:rn[code=SQL]rncreate or replace trigger trg_insurancern instead of update or insert or delete on view_arnbeginrn if inserting thenrn insert into table_a(a,b,c) values(:new.a,:new.b,:new.c);rn elsif updating thenrn if (:new.b=1) thenrn insert into table_a(a,b,c) values(:new.a,:new.b,:new.c);rn elsif (:new.b=0) thenrn delete from table_a where a=:old.a;rn end if;rn elsif deleting thenrn delete from table_a where a=:old.a;rn end if;rnend;rn[/code]rn现在问题就来了, 对方(有权限操作table_b的)执行rn[code=SQL]rn//将 insert 改为对应的 update, delete 语句时一样不会触发rninsert into table_b values(1,'1','1');rncommit;rn[/code]rn时,并没有触发触发器 trg_insurance, 而只有执行rn[code=SQL]rn//将 insert 改为对应的 update, delete 语句时也会执行触发器trg_insurancerninsert into view_a values(1,'1','1');rncommit;rn[/code]rn时,触发器 trg_insurance 才会执行.rnrn也就是说只有直接在 view_a 上作对应的操作时触发器 trg_insurance 才会被执行, 而直接操作实体表 table_b 时,触发器无法被执行, 请问我该怎么创建触发器才能在直接对实体表的数据进行修改(insert, update, delete)时,才能将触发器 trg_insurance 触发。[b](特别注意的是,我对 table_b 没有任何权限, 所以不可能直接在 table_b 上创建触发器)[/b]
oracle触发器问题?
我编写了这样一段代码,可是运行不了,出现以下错误提示[img=http://img.my.csdn.net/uploads/201211/16/1353032301_4305.jpg][/img]rnCREATE OR REPLACE TRIGGER aa rn --在真正insert数据库之前 rn BEFORE INSERT rn ON t1 -- on 具体的表 rn FOR EACH ROW rn DECLARE rn maxs_id VARCHAR2(20); rn BEGIN rn SELECT 'TID'||lpad(substr(nvl(max(tid),'TID000'),4,3)+1,3,0) INTO maxs_id FROM t1; rnrn :NEW.tid := maxs_id; --把max_id赋给tid列 rn END; rn
关于触发器的问题 oracle!
rn 现在我想利用触发器实现下面的功能,请各位帮帮忙,给点方案:rn rn 将A表数据全部查出来导入到B表。。如果B表存在相同的记录则更新B表。如果没有相同的记录则添加一条。。rn rn 如何用触发器实现。。谢谢!!rn rn 在线等~~
关于Oracle触发器的问题
主要想实现:在每天的0点之前自动将数据插入数据库,希望大家指点!
相关热词 c#入门推荐书 c# 解码海康数据流 c# xml的遍历循环 c# 取 查看源码没有的 c#解决高并发 委托 c#日期转化为字符串 c# 显示问号 c# 字典对象池 c#5.0 安装程序 c# 分页算法