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;
这个存储过程创建的时候没有报错,,, 我执行这个存储过程, 为什么表里面的数据不能改变
(
V_ID IN NUMBER,
V_VALUE IN VARCHAR2
)
IS BEGIN
UPDATE TEST SET VALUE=V_VALUE WHERE ID=V_ID;
END UPDATE_PROCEDURE_NAME;
这个存储过程创建的时候没有报错,,, 我执行这个存储过程, 为什么表里面的数据不能改变
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');
是不是又是因为没有commit;
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;
/
--这样建立就可以看清了