PROCEDURE UPDATE_PROCEDURE_NAME
(
 V_ID IN NUMBER,
 V_VALUE IN VARCHAR2
)
IS BEGIN
   UPDATE TEST SET VALUE=V_VALUE WHERE ID=V_ID;
END UPDATE_PROCEDURE_NAME;
这个存储过程创建的时候没有报错,,,  我执行这个存储过程,  为什么表里面的数据不能改变

解决方案 »

  1.   

    我测试没有问题啊:
    create or replace PROCEDURE UPDATE_PROCEDURE_NAME
    (
     V_ID IN NUMBER,
     V_VALUE IN VARCHAR2
    )
    IS BEGIN
      UPDATE test SET VALUE=V_VALUE WHERE ID=V_ID;
    END;
    /先添加一个id=1的数据,然后调用过程:
    call UPDATE_PROCEDURE_NAME(1,'333');
      

  2.   

    囧~
    是不是又是因为没有commit;
      

  3.   

    你测试没问题?那估计或者没找到符合条件的数据,或者是你没Commit,再就是有其他用户正对此表进行写入操作。
      

  4.   

    你测试没问题?那估计或者没找到符合条件的数据,或者是你没Commit,再就是有其他用户正对此表进行写入操作。
      

  5.   


    set serveroutput on;
    /
    create or replace PROCEDURE UPDATE_PROCEDURE_NAME
    (
     V_ID IN NUMBER,
     V_VALUE IN VARCHAR2
    )
    IS 
    val varchar(50):='';
    cou int:=0;
    BEGIN
    select count(1) into cou from TEST where ID=V_ID;
    if cou<>0 then
      select VALUE into val from TEST where ID=V_ID;
    dbms_output.put_line(val);
      UPDATE TEST SET VALUE=V_VALUE WHERE ID=V_ID;
      select VALUE into val from TEST where ID=V_ID;
    dbms_output.put_line(val);
    commit;
    end if;
    END UPDATE_PROCEDURE_NAME;
    /
    --这样建立就可以看清了