drop procedure if exists proc;
delimiter // --设定mysql 结束符 否则有可能报莫名其妙的 near ' ' at line 错误
create (oracle: or replace) procedure proc(in iId int,in iPid int ,out r char) (oracle : as)
begin
declare tempId int;
set r = 'n';(oracle :不需要set)
set tempId = -1;
if iId = iPid then
set r = 'y';
end if;
while tempId <> null && tempId <> iId do
select id into tempId from ceshi where ceshi.pid = iPid;
if tempId = iId then
set r = 'n';
end if;
end while; -- 也必须要有 不然烦人的 near ' ' at line错误 又会出现
end;//
准备在mysql中使用 游标的,mysql游标在5.5版本后出现,但是好像限于不带参的游标,所以放弃使用
发现mysql 和 oracle 的存储过程写法差别还是很大的 纠结。。。。
mysql ①declare语句必须在if 前面 ② 变量的声明也必须在游标的前面 ③mysql 游标: declare cur_name cursor for select * from tab;