Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/oracle/10.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Oracle 我正在递增该值并将其更新到表中_Oracle_Plsql_Triggers - Fatal编程技术网

Oracle 我正在递增该值并将其更新到表中

Oracle 我正在递增该值并将其更新到表中,oracle,plsql,triggers,Oracle,Plsql,Triggers,将错误获取为: create or replace trigger trans_s_t5 after insert on trans_s for each row begin update :old.no_of_books set book_no=:old.no_of_books+1 where book_no=:trans_s.book_no; end; 似乎您正试图更改此触发器中TRANS_S表中的字段值,该值在TRANS_S表中定义。如果是这样,您可以通过将触发器更改为BEFORE触发器

将错误获取为:

create or replace trigger trans_s_t5
after insert
on trans_s
for each row
begin
update :old.no_of_books
set book_no=:old.no_of_books+1
where book_no=:trans_s.book_no;
end;

似乎您正试图更改此触发器中TRANS_S表中的字段值,该值在TRANS_S表中定义。如果是这样,您可以通过将触发器更改为BEFORE触发器并直接更新字段来完成此操作,如中所示:

PLS-00049: bad bind variable 'OLD.NO_OF_BOOKS' Compilation failed, line 3
PLS-00049: bad bind variable 'OLD.NO_OF_BOOKS' Compilation failed, line 4
PLS-00049: bad bind variable 'TRANS_S.BOOK_NO' Compilation failed, line 2 
PL/SQL: ORA-00903: invalid table name Compilation failed, line 2 (10:11:17)
PL/SQL: SQL Statement ignored 

祝你好运。

你想更新什么?一张桌子?不能对表使用:old和:new。只有特定的列和什么是:trans_s?发布您的表结构
create or replace trigger trans_s_t5
  BEFORE insert on trans_s
  for each row
begin
  :NEW.NO_OF_BOOKS := :NEW.NO_OF_BOOKS + 1;
end;