【发布时间】:2019-03-26 11:09:09
【问题描述】:
我正在尝试声明一个变量并再次访问它以更新特定 ID 的同一个表。(将 STATUS 从 'E' 更新为 'R')
create or replace trigger resume_trgr
before update on temp_jobs
DECLARE
job_status varchar(2);
begin
select STATUS into :job_status from temp_jobs where id=6120;
if :job_status='E'
then
update temp_jobs set STATUS='R' where id=6120;
end if;
end;
/
但在执行上述代码时返回错误。错误代码如下:
触发 resume_trgr 编译
Errors: check compiler log
Error(5,27): PLS-00049: bad bind variable 'STATUS'
【问题讨论】:
-
有一个语句级触发器命中同一个表上的特定行似乎很奇怪(它会再次触发内部更新,首先);但在任何情况下,错误都不会与代码匹配。在您发布的内容中,
job_status是局部变量而不是绑定变量,因此不应有冒号前缀。但不清楚你真正在做什么或看到什么......
标签: oracle plsql database-trigger