存儲過程更新數據
A. ORACLE存儲過程中更新變數值的語句
oracle的pl/sql採用的是類似pascal的語法,所以賦值語句為:=
r_LoseID_Flag 是變數嗎?那應該這樣:
r_LoseID_Flag:='N';
B. UPDATE 存儲過程
先在資料庫中創建test表,表中有列名為name,類型為varchar(50)
然後先執行
create procere proc_insert
@name varchar(50)
as
begin
insert into test values(@name)--插入數據
end
go
create procere proc_update
@newname varchar(50),@oldname varchar(50)
as
begin
update test set name=@newname where name=@oldname--更新數據
end
go
--其中proc_insert為存儲過程名,可自定義 procere可使用簡寫proc
上面執行完成後調用存儲過程
exec proc_insert '曉華'--將"曉華"添加到test表中
exec proc_update '小明','曉華' --將表中'曉華' 改為'小明',必須與存儲過程變數順序相同
exec proc_update @oldname='小明',@newname='曉華'--與存儲過程變數順序可以不同
drop procere proc_insert 刪除存儲過程proc_insert.
C. Oracle存儲過程,更新大量數據,如何循環分批次提交
可通過以下方法:
以100條數據為例,如果海量數據可參考。
如test表中有如下數據:
declare
iint;--定義變數
v_countint;--定義變數
v_loopint;--定義變數
begin
selectcount(*)intov_countfromtest;--計算表內數據總數
selectceil(v_count/10)intov_loopfromal;--計算需要循環次數
i:=1;--為i賦值
whilei<=v_looploop--循環退出條件
updatetestsetbegintime=<=10;--執行更新
commit;--提交
i:=i+1;--i依次加1
endloop;--結束循環
end;