create or replace procedure tran(outname varchar2,inname varchar2,tranval int)
is
tran_no number;
tran_name varchar2(10);
begin
select ename,sal into tran_name,tran_no from emp where ename=outname;
update emp set sal = sal + tranval where ename=inname;
update emp set sal = tran_no - tranval where ename=outname;
dbms_output.put_line('已经转帐成功');
end;
/

解决方案 »

  1.   

    多谢多谢,对了,可为什么 第一个要用sal呢?能给解释一下吗
      

  2.   

    create or replace procedure tran(outname varchar2,inname varchar2,tranval int)
    is
    begin
    update emp set sal = sal + tranval where ename=inname;
    update emp set sal = sal - tranval where ename=outname;
    dbms_output.put_line('已经转帐成功');
    end;
    /这样也就够了。
      

  3.   

    create or replace procedure tran(outname varchar2,inname varchar2,tranval int)
    is
    begin
    update emp set sal = sal + tranval where ename=inname;
    update emp set sal = sal - tranval where ename=outname;
    commit;
    dbms_output.put_line('已经转帐成功');
    exception
    when others then
    rollback;
    dbms_output.put_line('转帐失败');
    end;
    /这样更好点。
      

  4.   

    更新自己的当然要用自己的sal
      

  5.   

    了解了 tran_no 的变量值给sal最先的值赋上了 所以不会随条件变化而变化了……多谢大家!