帮忙修改触发器
CREATE OR REPLACE TRIGGER GTTEST.WRITEBACK
AFTER UPDATE OF FBILLSTATUS
ON GTTEST.T_ST_WEIGH
REFERENCING OLD AS OLD NEW AS NEW_VALUE
FOR EACH ROW
declare fidWeighNoticeBillentry varchar(50);
fidPostRequestion varchar(50);
fidWeighNoticeBillentr varchar(50);
YGBNumber number(20,4);
QTYNumber number(20,8);
begin
dbms_output.put_line(:OLD.fsourcebizbillid);
select fsourcebillid into fidWeighNoticeBillentry from T_ST_WeighNoticeBillentry
where fparentid=:OLD.fsourcebizbillid;
select fjnwygbnumber,fqty into YGBNumber, QTYNumber from T_SD_PostRequisitionentry
where fparentid=fidWeighNoticeBillentry;
update T_SD_PostRequisitionentry set fjnwkfhnumber=QTYNumber-(YGBNumber-:OLD.fsuttle),
fjnwygbnumber=YGBNumber-:OLD.fsuttle
where fparentid=fidWeighNoticeBillentry;
end;
/
对一个表的字段修改后,修改另外表的字段。update t_st_weigh set fbillstatus=2 where fbillstatus=3;是报错这个是简化了的建表语句
CREATE TABLE "GTTEST"."T_ST_WEIGH"
( "FID" VARCHAR2(44) NOT NULL ENABLE,
"FBILLSTATUS" NUMBER(10,0),
"FSUTTLE" NUMBER(28,10) DEFAULT 0,
"FSOURCEBIZBILLID" NVARCHAR2(80))CREATE TABLE "GTTEST"."T_ST_WEIGHNOTICEBILLENTRY"
( "FPARENTID" VARCHAR2(44),
"FSOURCEBILLID" NVARCHAR2(80))
CREATE TABLE "GTTEST"."T_SD_POSTREQUISITIONENTRY"
( "FPARENTID" VARCHAR2(44),
"FQTY" NUMBER(28,16) DEFAULT 0,
"FJNWKFHNUMBER" NUMBER(28,4),
"FJNWYGBNUMBER" NUMBER(28,4))insert into t_st_weigh values('A00001',3,33.333333,'B00001')
insert into T_ST_WEIGHNOTICEBILLENTRY values('B00001','C00001')
insert into T_SD_POSTREQUISITIONENTRY values('C00001',55.331,null,0)要求在表T_ST_WEIGH的FBILLSTATUS变化后触发,
表T_SD_POSTREQUISITIONENTRY 中的FJNWYGBNUMBER=FJNWYGBNUMBER-FSUTTLE
表T_SD_POSTREQUISITIONENTRY 中的FJNWKFHNUMBER=FQTY-(FJNWYGBNUMBER-FSUTTLE)请高手帮忙分析一下错误
CREATE OR REPLACE TRIGGER GTTEST.WRITEBACK
AFTER UPDATE OF FBILLSTATUS
ON GTTEST.T_ST_WEIGH
REFERENCING OLD AS OLD NEW AS NEW_VALUE
FOR EACH ROW
declare fidWeighNoticeBillentry varchar(50);
fidPostRequestion varchar(50);
fidWeighNoticeBillentr varchar(50);
YGBNumber number(20,4);
QTYNumber number(20,8);
begin
dbms_output.put_line(:OLD.fsourcebizbillid);
select fsourcebillid into fidWeighNoticeBillentry from T_ST_WeighNoticeBillentry
where fparentid=:OLD.fsourcebizbillid;
select fjnwygbnumber,fqty into YGBNumber, QTYNumber from T_SD_PostRequisitionentry
where fparentid=fidWeighNoticeBillentry;
update T_SD_PostRequisitionentry set fjnwkfhnumber=QTYNumber-(YGBNumber-:OLD.fsuttle),
fjnwygbnumber=YGBNumber-:OLD.fsuttle
where fparentid=fidWeighNoticeBillentry;
end;
/
对一个表的字段修改后,修改另外表的字段。update t_st_weigh set fbillstatus=2 where fbillstatus=3;是报错这个是简化了的建表语句
CREATE TABLE "GTTEST"."T_ST_WEIGH"
( "FID" VARCHAR2(44) NOT NULL ENABLE,
"FBILLSTATUS" NUMBER(10,0),
"FSUTTLE" NUMBER(28,10) DEFAULT 0,
"FSOURCEBIZBILLID" NVARCHAR2(80))CREATE TABLE "GTTEST"."T_ST_WEIGHNOTICEBILLENTRY"
( "FPARENTID" VARCHAR2(44),
"FSOURCEBILLID" NVARCHAR2(80))
CREATE TABLE "GTTEST"."T_SD_POSTREQUISITIONENTRY"
( "FPARENTID" VARCHAR2(44),
"FQTY" NUMBER(28,16) DEFAULT 0,
"FJNWKFHNUMBER" NUMBER(28,4),
"FJNWYGBNUMBER" NUMBER(28,4))insert into t_st_weigh values('A00001',3,33.333333,'B00001')
insert into T_ST_WEIGHNOTICEBILLENTRY values('B00001','C00001')
insert into T_SD_POSTREQUISITIONENTRY values('C00001',55.331,null,0)要求在表T_ST_WEIGH的FBILLSTATUS变化后触发,
表T_SD_POSTREQUISITIONENTRY 中的FJNWYGBNUMBER=FJNWYGBNUMBER-FSUTTLE
表T_SD_POSTREQUISITIONENTRY 中的FJNWKFHNUMBER=FQTY-(FJNWYGBNUMBER-FSUTTLE)请高手帮忙分析一下错误
解决方案 »
- 请教关于date排序的问题
- 多个表如何共用一个触发器?
- ORACLE中,要删除有外键关系的表,存储过程怎么写?
- 我在oracle中发现dbms._output.put_line 不能输出大于255的字符串?
- 如何写包
- 有懂Oracle安装和系统服务管理的没?急求建议!!!
- OracleOraHome90TNSListener服务不能起动(这个是不是叫监听器)
- MSSQL 和 Oracle 中的存储过程的区别
- 哪里可以下载ORACLE9i
- oms无法启动,前几天正常启动,换了一个IP再也无法启动,求各位!
- sql代码字段与代码表关联查询
- 两个表有相同字段id,如何根据id来查询一个表的字段,更新另外一个表的字段?
==============================================================
报什么错?
REFERENCING OLD AS OLD NEW AS NEW