Declare
v_cnt varchar2(20);
v_cnd varchar2(20);
v_total varchar2(20);
begin
select count(emp_id) into v_cnt from emp1;
select count(emp_id) into v_cnd from emp2;
v_total:=v_cnt+v_cnd;
dbms_output.put_line('before');
dbms_output.put_line(v_total);
update emp3 set total_emp=v_total where dept_no=40;
commit;
dbms_output.put_line('after');
dbms_output.put_line(v_total);
end;
在上面的程序中,total_emp 列的值被更新为 0 而不是数值。但是,当我使用 dbms_output 语句打印值时,对于这两种情况,before 和 after,我都得到了变量 v_total 的数值。
v_total 值未更新为表中的列值。
total_emp 的表列定义是 varchar2(20)。
此外,我尝试在上述语句中对 total_emp 列的值进行硬编码,并且它起作用了。
因此,问题是在更新语句中使用变量值时它没有更新到列。
请帮我。