sql游标

Oracle游标练手实例

纵然是瞬间 提交于 2019-11-26 20:32:43
-- 声明游标;CURSOR cursor_name IS select_statement -- For循环游标 -- (1)定义游标 -- (2)定义游标变量 -- (3)使用for循环来使用这个游标 declare -- 类型定义 cursor c_job is select empno,ename,job,sal from emp where job = ' MANAGER ' ; -- 定义一个游标变量v_cinfo c_emp%ROWTYPE,该类型为游标c_emp中的一行数据类型 c_row c_job % rowtype; begin for c_row in c_job loop dbms_output.put_line(c_row.empno || ' - ' || c_row.ename || ' - ' || c_row.job || ' - ' || c_row.sal); end loop; end ; -- Fetch游标 -- 使用的时候必须要明确的打开和关闭 declare -- 类型定义 cursor c_job is select empno,ename,job,sal from emp where job = ' MANAGER ' ; -- 定义一个游标变量 c_row c_job % rowtype; begin open c_job;

SQL SERVER 动态游标

◇◆丶佛笑我妖孽 提交于 2019-11-26 19:02:54
 set @sql = ' select id,content from table ' set @strCursor = ' declare table_cursor cursor scroll dynamic for ' + @sql -- scroll表示可以向前向后 -- dynamic表示可以可读可写 exec ( @strCursor ) open table_cursor 转载于:https://www.cnblogs.com/hubj/archive/2010/07/20/1781456.html 来源: https://blog.csdn.net/weixin_30725315/article/details/99042748

MySQL存储过程02

旧巷老猫 提交于 2019-11-26 13:29:53
这次接着说MySQL存储过程: 我们先看它的多分支控制结构case: case的语句很简单: case 变量名 when 条件1 then 输出结果1; when 条件2 then 输出结果2; ...... end case; 那我们就来建立一个存储过程实现它: create procedure p10() begin declare pos int default 0; set pos:= floor(5*rand()); case pos when 1 then select'我会飞'; when 2 then select'我掉到海里'; when 3 then select'我在小岛'; else select'我不知道我在哪'; end case; end$ 由于我们设置的是随机数,所以它会根据我们生成的数来输出结果 接着看一下repeat循环: repeat的语法: repeat sql statement; sql statement; ... until condition end repeat; create procedure p11() begin declare total int default 0; declare i int default 0; repeat set i:=i+1; set total:=total+i; until i>=100

SQL中游标的使用

谁说我不能喝 提交于 2019-11-26 11:25:23
SQL中游标的使用 类型:   1.普通游标 只有NEXT操作   2.滚动游标 有多种操作 1.普通游标 DECLARE @username varchar(20),@UserId varchar(100) DECLARE cursor_name CURSOR FOR --定义游标 SELECT TOP 10 UserId,UserName FROM UserInfo ORDER BY UserId DESC OPEN cursor_name --打开游标 FETCH NEXT FROM cursor_name INTO @UserId,@username --抓取下一行游标数据 WHILE @@FETCH_STATUS = 0 BEGIN PRINT '用户ID:'+@UserId+' '+'用户名:'+@username FETCH NEXT FROM cursor_name INTO @UserId,@username END CLOSE cursor_name --关闭游标 DEALLOCATE cursor_name --释放游标 结果: 用户ID:zhizhi 用户名:邓鸿芝 用户ID:yuyu 用户名:魏雨 用户ID:yujie 用户名:李玉杰 用户ID:yuanyuan 用户名:王梦缘 用户ID:YOUYOU 用户名:lisi 用户ID:yiyiren 用户名