加入收藏 | 设为首页 | 会员中心 | 我要投稿 聊城站长网 (https://www.0635zz.com/)- 智能语音交互、行业智能、AI应用、云计算、5G!
当前位置: 首页 > 站长学院 > MySql教程 > 正文

推荐使用mysql和Oracle 游标的方法

发布时间:2023-08-26 15:01:59 所属栏目:MySql教程 来源:
导读:下文内容主要给大家带来使用mysql和Oracle 游标的方法,这里所讲到的知识,与书籍略有不同,都是亿速云专业技术人员在与用户接触过程中,总结出来的,具有一定的经验分享价值,希望给广大读者带来帮助。

使用游标
下文内容主要给大家带来使用mysql和Oracle 游标的方法,这里所讲到的知识,与书籍略有不同,都是亿速云专业技术人员在与用户接触过程中,总结出来的,具有一定的经验分享价值,希望给广大读者带来帮助。
 
使用游标根据一个表中的数据,循环创建不同的表
 
mysql中的
 
DELIMITER $$
 
DROP PROCEDURE  IF EXISTS zy.jk_jkzl_political_location_pro $$
 
CREATE PROCEDURE zy.jk_jkzl_political_location_pro()
 
BEGIN
 
DECLARE no_more_pro INT DEFAULT 0;
 
DECLARE num VARCHAR(20);
 
#一 声明一个游标
 
DECLARE cursor_create_user CURSOR FOR  SELECT area_code FROM  zy.jk_jkzl_political_location;
 
#二 声明一个处理异常的信息
 
DECLARE CONTINUE HANDLER FOR NOT FOUND SET no_more_pro=1;
 
#三 打开游标
 
OPEN cursor_create_user;
 
#四 给游标赋值
 
FETCH NEXT FROM cursor_create_user INTO num;
 
#五 准配重复调用游标的信息
 
REPEAT
 
SET @sql=CONCAT('create table zy.tf_f_user_p',num,'(user_name varchar(20),user_state int)engine=innodb default charset=utf8');
 
SELECT NOW();
 
PREPARE create_sql FROM @sql;
 
EXECUTE create_sql;
 
DEALLOCATE PREPARE create_sql;
 
FETCH NEXT FROM cursor_create_user INTO num;  #####必须标明,否则循环失败
 
UNTIL no_more_pro=1  #调用所有游标数据
 
END REPEAT; #关闭重复调用
 
CLOSE cursor_create_user; #关闭游标
 
END;
 
使用mysql和Oracle 游标的方法
 
Oracle 的测试:
 
DELIMITER $$
 
DROP PROCEDURE  IF EXISTS zy.jk_jkzl_political_location_pro $$
 
CREATE PROCEDURE zy.jk_jkzl_political_location_pro()
 
BEGIN
 
DECLARE no_more_pro INT DEFAULT 0;
 
DECLARE num VARCHAR(20);
 
#一 声明一个游标
 
DECLARE cursor_create_user CURSOR FOR  SELECT area_code FROM  zy.jk_jkzl_political_location;
 
#二 声明一个处理异常的信息
 
DECLARE CONTINUE HANDLER FOR NOT FOUND SET no_more_pro=1;
 
#三 打开游标
 
OPEN cursor_create_user;
 
#四 给游标赋值
 
FETCH NEXT FROM cursor_create_user INTO num;
 
#五 准配重复调用游标的信息
 
REPEAT
 
SET @sql=CONCAT('create table zy.tf_f_user_p',num,'(user_name varchar(20),user_state int)engine=innodb default charset=utf8');
 
SELECT NOW();
 
PREPARE create_sql FROM @sql;
 
EXECUTE create_sql;
 
DEALLOCATE PREPARE create_sql;
 
FETCH NEXT FROM cursor_create_user INTO num;
 
UNTIL no_more_pro=1  #调用所有游标数据
 
END REPEAT; #关闭重复调用
 
CLOSE cursor_create_user; #关闭游标
 
END;
 
 

(编辑:聊城站长网)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章