0
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 문을 사용하여 값을 인쇄 할 때 앞과 뒤 두 경우에 대해 변수 v_total의 숫자 값이 나타납니다.PL/SQL - 열 값이 숫자 값 대신 0으로 업데이트됩니다.
v_total 값이 표의 열 값으로 업데이트되지 않습니다.
total_emp에 대한 테이블 열 정의는 varchar2 (20)입니다.
또한 위의 명령문에서 total_emp 열의 값을 하드 코드하여 처리했습니다.
그래서 문제는 업데이트 문에서 사용될 때 변수 값으로 업데이트되지 않습니다.
도와주세요.
"total_emp는 varchar2 (20) *"입니다. 아야!!! *** NOT *** *** 문자 열에 숫자를 저장하십시오. 못. 이제까지. –
0으로 업데이트 되었습니까? 아니면 이미 0이었고 예상 값으로 업데이트되지 않았습니까? 'dept_no = 40'을 사용하여'emp3'에 실제로 행이 있습니까? 하드 코딩 된 값 버전을위한 where 절이 있습니까? –