我們知道,在儲存過程中用dml語句,只能查詢單條記錄,如果要對多條資料進行處理,那麼就要用到游標,下面以例子來說明:
如果對scott使用者下的emp表中的使用者名為clerk的每個使用者進行薪金加100的操作。
create or replace procedure p_salary
iscursor c_emp is select * from emp where job='clerk';
begin
--for就不用開啟關閉游標
for v_row in c_emp
loop
update emp e set e.sal=e.sal+100 where e.empno=v_row.empno;
end loop;
commit;
exception
when others then
rollback;
end p_salary;
然後新建乙個sql視窗對儲存過程進行呼叫:
--p_salary
declare
begin
p_salary;
end;
呼叫結束後可以用select * from emp where job='clerk';觀察薪金的變化
利用游標進行資料庫資料備份
今天同事問我乙個問題 他需要每天將tablea中指定條件下的資料copy到tableb中,並刪除tableb中已被copy的資料,應該用什麼方法高效一些?聽到這個方法之後第一反映就是想到在我上家公司的時候,也做了同樣的資料備份工作,不過當時指令碼是我老大寫的,我只是看了一眼,大概是將需要備份的資料查...
用游標刪除清空資料庫
declare sql nvarchar 500 declare name nvarchar 200 set sql set name declare cur cursor for select name from sysobjects where xtype u and name like for...
對資料庫進行操作
對資料庫進行操作 一 ddl 資料庫定義語言 對資料庫 表結構進行操作 建庫 建表 修改表結構 刪庫 刪表等等 sql語句大小寫不敏感 1.建立資料庫 2.顯示所有的資料庫 3.切換到要使用的資料庫,use 資料庫名稱 4.4.刪除資料庫 drop database if exists 資料庫名 5...