mysql动态游标学习(mysql存储过程游标)

2023年 4月 23日 54.2k 0

复制代码 代码如下: -- 建立测试表和数据 create table webuser (username varchar(10)); insert into webuser values ('a1'),('a2'),('a3'),('b1'),('b2'),('b3'); commit; -- 建立存储过程 drop procedure if exists dynamic_cursor;

复制代码 代码如下:-- 建立测试表和数据create table webuser (username varchar(10));insert into webuser values ('a1'),('a2'),('a3'),('b1'),('b2'),('b3');commit;-- 建立存储过程drop procedure if exists dynamic_cursor;delimiter //CREATE PROCEDURE dynamic_cursor (IN p_name varchar(10))BEGIN    DECLARE done INT DEFAULT 0;    DECLARE v_username varchar(10);    DECLARE cur CURSOR for( SELECT username from webuser_view);    DECLARE CONTINUE HANDLER FOR NOT FOUND SET done = 1;    DROP VIEW IF EXISTS webuser_view;    SET @sqlstr = "CREATE VIEW webuser_view as ";    SET @sqlstr = CONCAT(@sqlstr , "SELECT username FROM webuser WHERE username like '", p_name,"%'");    PREPARE stmt FROM @sqlstr;    EXECUTE stmt;    DEALLOCATE PREPARE stmt;    OPEN cur;    f_loop:LOOP     FETCH cur INTO v_username;    IF done THEN        LEAVE f_loop;      END IF;    SELECT v_username;        END LOOP f_loop;    CLOSE cur;END;//delimiter ;-- 测试call dynamic_cursor('a');

相关文章

Oracle如何使用授予和撤销权限的语法和示例
Awesome Project: 探索 MatrixOrigin 云原生分布式数据库
下载丨66页PDF,云和恩墨技术通讯(2024年7月刊)
社区版oceanbase安装
Oracle 导出CSV工具-sqluldr2
ETL数据集成丨快速将MySQL数据迁移至Doris数据库

发布评论