我想把乙個資料匯入另外乙個資料表,所以我用mysql在上面實現儲存過程.發現和sql server還是有區別的.具體寫法如下:
drop procedure if exists test_proc;
delimiter //
create procedure test_proc()
begin
-- 宣告乙個標誌done, 用來判斷游標是否遍歷完成
declare done int default 0;
declare _col1 varchar(500) default null;
declare _col2 varchar(500) default null;
declare _col3 varchar(500) default null;
declare _col4 varchar(500) default null;
declare _col5 varchar(500) default null;
-- 宣告游標對應的 sql 語句
declare cur cursor for
select `col 5`,`col 4`,`col 2`,`col 1`,`col 3` from `table 8`;
-- 在游標迴圈到最後會將 done 設定為 1
declare continue handler for not found set done = 1;
-- 執行查詢
open cur;
-- 遍歷游標每一行
repeat
-- 把一行的資訊存放在對應的變數中
fetch cur into _col5, _col4, _col2,_col1,_col3; -- 取資料
if not done then
insert into `aunt_shop` (`cshopaddr`,`cshopcontact`,`cshopdetail`,`cshopname`,`cshopphone`)values ( _col5,_col4,_col2,_col1,_col3);
end if;
until done end repeat;
close cur;
end//
delimiter ;
-- 執行儲存過程
call test_proc();
mysql過程編寫 mysql儲存過程編寫(一)
首先需要知道mysql儲存過程的作用 1 儲存過程能實現較快的執行速度 2 儲存過程能過減少網路流量 3 儲存過程可被作為一種安全機制來充分利用 儲存過程的格式 create procedure 儲存過程名 過程引數 特性引數 begin endeg delimiter create procedu...
oracle 儲存過程 編寫
1 先建立乙個陣列 types create or replace type p index list as varray 35 of number 2 編寫儲存過程,迴圈插入資料 call jdxxendingprov ock p index list 370000,370200,410000,5...
儲存過程的編寫
這些是 sql 92 設定語句,使 mssql 遵從 sql 92 規則 當 set ansi nulls 為 on 時 即使 column name 中包含空值,使用 where column name null 的 select 語句仍返回零行。即使 column name 中包含非空值,使用 ...