一个ORACLE触发器的问题

图片说明

图片说明

如上图,第一张是触发器,第二张是PL/SQL更改taxno字段保存,就加了两个空格

0

1个回答

我自己来回答算了,写成死循环了0.0

0
Csdn user default icon
上传中...
上传图片
插入图片
抄袭、复制答案,以达到刷声望分或其他目的的行为,在CSDN问答是严格禁止的,一经发现立刻封号。是时候展现真正的技术了!
其他相关推荐
一个oracle触发器的问题
触发器内容如下:rndeclare rni_id integer;rnbeginrnselect seq.nextval into i_id from dual;rn:new.user_id := i_id;rnend;rnrn报错为ORA-04082:NEW或OLD引用不允许在表层触发器中
一个ORACLE触发器问题
大家帮忙给我看看我的触发器为什么不能运行啊,我想在每个月的某一天向表里面插一条记录。SQL语句都是对的,编译也能通过,但是就是不插入数据。这个例子是在今天插入记录的,但是早晨过来还是没有插入成功。rncreate or replace trigger insertHYrn before insert on tbl_zdsy_gsjfhysfbrnfor each rowrndeclarern newTime date;rn oldTime date;rn rnrnbeginrn select YCSJ into newTime from tbl_zdsy_ycsj_xxrn where rybs='4' and to_char(sysdate,'yyyy-mm')=to_char(YCSJ,'yyyy-mm');rn if(to_char(sysdate,'DD') ='20') thenrn oldTime:=newTime;rn insert into tbl_zdsy_gsjfhysfb(HYBH,hymc,BIAOSHI,sbqx) values('0600','煤炭开采和洗选业','1',oldTime);rnend if;rnend;rn
请教一个oracle触发器的问题
请教下面这个语句:rn--------------------------------------------------------------------------------------rnCREATE or replace TRIGGER tr_snort_signature_idrn BEFORE INSERT ON signaturern FOR EACH ROWrn BEGINrn SELECT seq_snort_signature_id.nextval INTO :new.SIG_ID FROM dual;rn END;rn/rn--------------------------------------------------------------------------------------rn中的:new是什么意思?rn应该怎样赋值?rnrn请教。rn多谢 !!!!!!
还有一个Oracle触发器问题。。。
我的数据库里面有一个表的id字段用的是小写标定的也就是“id”,现在利用序列和触发器在向表内插入新记录时添加id项数值。rn我的触发器是:rnCREATE OR REPLACE TRIGGER INSERT_CONNECTIONrnBEFORE INSERT ON "Connection"rnBEGINrnSELECT ID_SQE.NEXTVAL INTO :NEW.ID FROM dualrnENDrn/rn可是我试过很多次了,每次都提示赋值:NEW.ID不正确。即便我把:NEW.ID改为:NEW.id也不行。rn但当我把表Connection中id改为ID时,就没有问题了。rnrn请问,可否不修改数据库id的大小写,实现我的功能。还望高手赐教!
请教一个oracle 触发器的问题
我想写这样一个触发器:表A中一行数据只要发生变化(增、删、改),就将这条数据更新到表B(同时将操作数据的时间也记录在表B中的时间字段),并在B中的标记字段中表明是发生了什么操作。谢谢各位达人了……
请教一个Oracle触发器的问题
就是如何编写一个触发器,当数据库中一些表有insert、update和delete的sql语句时,就通过存储过程把这些sql语句插入到一个操作纪录表里面?
一个关于Oracle触发器的问题
product表:rnpCode pType pName cost pricern101 足球类 足球 85.0 110.0rn102 足球类 手套 90.0 122.0rn201 羽毛球类 羽球鞋 28.0 38.0rn202 羽毛球类 球拍 200.0 250.0rn301 游泳类 泳镜 85.0 102.0rn302 游泳类 泳帽 50.0 63.0rn401 健美类 拉力器 40.5 54.5rn402 健美类 十磅哑铃 70.0 92.0rn403 健美类 跳绳 20.0rnrn要求:rn在表product上创建一个触发器change_price实现如下功能:避免修改产品价格时,修改后的价格低于其成本价,若修改的价格低于成本加,让其修改后的产品的价格等于成本价。
oracle中的一个触发器问题
表ZM-ID结构 ZM-ID number(2)rn ZM char(8)rn建一触发器: 如果ZM字段插入或修改的值为“中国”rn 则ZM-ID的值为1rn请给出代码
oracle的一个简单的触发器
create or replace trigger TRG_TZ_XS_KouYaCaiQingDan---台账扣押财务触发器(刑事子表)  after insert or update on xs_kouyawupinqingdan  for each rowdeclarebegin  if inserting then           insert into tz_kouya_caiwud...
一个简单的oracle触发器
我有一张表table1rnid name pwd sumrn001 ss 123 100rn002 ww 11 200rn002 qq 22 100rnrntable2rnid name ccrn001 ss 00rnrn想建一个触发器,当我table1中的数据有变化,新增记录或者update任何字段的时候,就向表table2中插入rn一条记录,id和name就是table1中被操作的数据,cc是我插入的一个固定值。rn只要实现这个功能就行了,谢谢!
求解一个oracle触发器,
求解一个oracle触发器,谢谢rnrn两张表rnrn表1:personrn id:number, --主键idrn unitid:number, --单位id,来源于表2中的主键rnrn表2:unitrn id:number, --主键idrn countUser:number, --该单位共有多少人员rn lastjoindate:date --最后加入该单位的日期rnrn我想在表person中插入一条记录的时候,自动更新表unit中记录,rn更新1,在统计该单位有多少人,或者原来的值+1,rn更新2,最后加入该单位的时间,(或者说是该单位最后使用的日期),rnrn谢谢指教,郁闷好长时间了
一个oracle触发器的小问题
本人对oracle触发器的具体写法不太熟悉,手头也没有参考资料rnCREATE TRIGGER [change] ON [dbo].[TABLE1] rnFOR insert rnas rnupdate [dbo].[TABLE2]rnset xuhao=inserted.xuhao,status="1"rnfrom insertedrn其实目的很简单,就是让table2(里面只有一条记录),随时记录table1的最新那条记录rn
求一个Oracle触发器
求一个Oracle触发器rn[ 标签:oracle,触发器 ] 有张COLLECT表,表结构如下:rnrnHPHM HPZL ISBLACKLISTrnrnvarchar2 varchar2 charrnrn rnrnCOLLECT_BLACK表结构如下:rnrnHPHM HPZL rnrnvarchar2 varchar2 rnrn rnrn当COLLECT表中有操作将ISBLACKLIST字段从0改为1后,就触发操作“将修改后的这条记录插入到COLLECT_BLACK表中”rnrn rn怎么写?rn各位谢谢了。
求一个oracle 触发器
有表T1rn字段idrncodern……rnrn有表t2rn字段 rngh(自动增长列)rnidrncodernrn现在需要一个触发器rn当表t1新增(删除)一条记录时rn把所插入记录的id、code插入到表t2中rn(删除表t2中相同id的那条记账)rnrn
oracle触发器的一个小问题
比如这么说 updating 的时候,我修改了a列, 没修改b列,那么b列是否有:new.acco_type 这样的新值呢?是否只有修改的列才有:new的值?rn
一个银行触发器Oracle
我写了一个简单的触发器,在编译的时候没有错.但是在执行的时候出现了错误.rn哪位高手可以帮帮我呀?rnset serveroutput on;rncreate or replace trigger over1_triggerrn after update on accountrn for each row when (new.balance<0)rnbeginrn insert into loan(loan_number,branch_name,amount) valuesrn (:new.account_number,:new.branch_name,-:new.balance);rn update account set balance=0 where account_number=:new.balance;rnend over1_trigger;rn/rnrnrn出现的错误是:rn表 BANK.ACCOUNT 发生了变化,触发器/函数不能读rn在"BANK.OVER1_TRIGGER", line 4rn触发器 'BANK.OVER1_TRIGGER' 执行过程中出错rnrnrn谢谢!!
求一个oracle的触发器
求一个oracle的触发器rn触发器条件:rnrn有三个表,tableA,tableB,tableCrn[code="java"]rncreate table tableArn( rn userid number(4) primary key, rn username varchar2(20) rn) rn rncreate table tableBrn( rn addrid number(4) primary key, rn addname varchar2(20), rn userid number(4) references userinfo(userid) rn)rnrncreate table tableCrn( rn delrid number(4) primary key, rn delname varchar2(20), rn userid number(4) references userinfo(userid) rn)rnrn[/code]rn怎么样在给tableA添加记录的时候,给tableB和tableC也同时添加记录?rn给个类似的例子也可以。
写一个触发器(oracle)
create table t_temprn(rn id varchar2(10) primary key,rn len1 number(6,0),rn len2 number(6,0),rn len number(7,0)rn)rn当update某一行的len1或len2值后,则修改该行len的值(len = len1 + len2),rn或者insert 一条新的记录后,修改len = len1 + len2rn哪位帮我用触发器实现上面的功能rn
求一个oracle触发器
本人从未接触过oracle,现在需要用一个触发器,请各位大大帮忙。rnrn有表如下:rnCREATE TABLE "ME"."TABLE1"("ID" LONG NOT NULL,"NOTES" VARCHAR2(500 BYTE),"PRINTDATE" DATE,"PRINTMAN" VARCHAR2(10 BYTE))rnrn现在要在NOTES列上做一个UPDATE触发器,当NOTES写入内容时,解析NOTES的内容,分析出打印人和打印时间分别更新到PRINTDATE和PRINTMAN,NOTES的内容格式大致如下:rn打印人:XXX,打印时间:XXXXXXXXXXXXX
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触发器问题
 rn n n idrn pidrnn n 1rn 0rnn n 2rn 1rnn n 3rn 1rnnn 比如oracle表中数据是这样的,怎么定义触发器,比如,更改id=1的id时,使id=2,3的行的pid跟着更改rn 还有删除id=1的行,pid为1的行也删除
oracle 触发器的问题?
在19.104.24.72 库里有个用户 test_72 往此用户的test 表写入数据的时候,怎么利用触发器将数据写入到另一台远程机器上。目标库的地址 19.104.24.10, 用户名 test_10, 密码 123,实例名orcl。主要是database links 怎么写。琢磨了几个小时,还没解决?
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增加触发器的问题
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 触发器问题
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触发器的问题
我要使B表和A表保持一致rn使用触发器。rn数据入B表rnA表的字段与B表不完全一致,rn其中有的项使用不同的字典表,需要转换rn有的项需要合并rnrn请问这个触发器怎么写.rn谢谢!
oracle 触发器的问题!
RT。。rn我需要一个触发器。。两个表。。rn当A表有增删改操作的时候,B表会根据A表中的一个字段来更新B表中对应类型的更新时间。。rn这个要怎么写啊?rn大题样子应该是这样rncase ?????(这个条件怎么得到?)rnwhere then rnrn
关于Oracle 触发器的问题
我想写个触发器 实现下面的功能 我有一个student表 里面有学号 姓名和出生日期 我想通过查询语句查询一个人 要他输出来有他的年龄 年龄是由 系统日期减去生日得到 要求整数 望各位帮帮忙 小弟在此谢谢了
关于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触发器问题
触发器如下: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触发器问题
在一个表里建【后触发】,当修改某一行的第一字段的时候,我就更新这一行的第二个字段。我以前好像是知道触发器不可以修改你触发的行里的任何数据。但是找了一下没找到出处,不知道各位有何见解?
oracle触发器的问题! 急!
在表A中有一字段ID,将该ID字段设为了主键,并且为该ID字段用触发器实现了自动增长,可在向该表插入数据时却报了如下的错:rnrnORA-00001:unique constraint (LWLL.SYS_C005998) violatedrn请教各位这是什么原因?
Oracle 触发器问题
有两个表,图书表和库存表,如果卖书时,所卖的图书大于这本图书的库存数量,则警告操作员不能进行此项交易。rn使用Oracle怎么样写触发器。谢谢了
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表没有,这个触发器应该怎么写呢,谢谢给位了
Delphi和Oracle触发器的问题!
我在Oracle中用触发器使其中的序号(XH)字段自动增1,但是在前台Delphi程序中向该表添加新记录时TDBEdit却不能马上返回该值,请问出了关闭该Query控件,再重新打开之外还有没有别的办法?急!
oracle 触发器的问题。
当我执行程序时,把数据存到了A库A表里的时候会触发一个添加数据到B库的B表里。这个应该怎么写?
关于oracle触发器的问题
我建了一个中间表A,唯一主键是flowid,该字段自动生成id。比如A表的结构是A(flowid,a1,a2,a3)。现在我的表B,想建一个insert触发器。当B表插入数据的时候,A表也插入相同的数据。不知道为什么触发器老是有错误,是不是主键flowid自动生成id的无法触发啊,各种大侠救命!!!
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触发器的问题
本人遇到一个关于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