Sybase:游标用法以及嵌套用法
Sybase:游标用法以及嵌套用法
游标示例一:
--Sybase游标示例一:
create PROCEDURE DBA.p_proc_test() ON EXCEPTION RESUME
begin
declare @table_name varchar(100);
declare @count varchar(100);
declare @rownumber int;
declare HISTORYDATA dynamic scroll cursor for select a.table_name ,a.count rownumber,number(*) from systable a,systable b,systable c order by a.count desc; open HISTORYDATA with hold;
fetch next HISTORYDATA into @table_name,@count,@rownumber;
while @@SQLSTATUS = 0 loop
insert into test_tmp values(@table_name,@count,@rownumber);
fetch next HISTORYDATA into @table_name,@count,@rownumber;
end loop;
close HISTORYDATA;
deallocate cursor HISTORYDATA; end
游标示例二:
--Sybase游标使用示例二(循环):
create PROCEDURE DBA.p_proc_test2() ON EXCEPTION RESUME
begin
declare @table_name varchar(100);
declare @count varchar(100);
declare @rownumber int;
declare @num int; declare HISTORYDATA dynamic scroll cursor for select a.table_name ,a.count rownumber,number(*) from systable a order by a.count desc;
set @num=(select 0);
while @num<=30 loop
open HISTORYDATA with hold;
fetch next HISTORYDATA into @table_name,@count,@rownumber;
while @@SQLSTATUS = 0 loop
insert into test_tmp2 values(@table_name,@count,@rownumber,getdate());
fetch next HISTORYDATA into @table_name,@count,@rownumber;
end loop;
close HISTORYDATA; set @num=(select @num+1);
end loop;
deallocate cursor HISTORYDATA;
end
游标示例三(嵌套):
--Sybase:游标嵌套用法
create PROCEDURE DBA.p_teset(@i_rq int)
begin
-- 声明局部变量(变量需要一开始声明)
declare @cur_pk_corp varchar(50);
declare @c_pk_corp varchar(50);
declare @c_orgname varchar(50);
declare @c_pk_org varchar(30);
declare @c_pk_deptdoc varchar(20);
declare @c_px int;
declare @c_px_new int;
-- 声明游标 (游标需要一开始声明)
--游标一
declare c_corp dynamic scroll cursor
for select a.pk_corp from t_corp a group by a.pk_corp order by a.pk_corp ;
--游标二
declare c_org dynamic scroll cursor
for select a.pk_corp, a.orgname, coalesce(b.pk_org,a.pk_org) as pk_org,a.pk_deptdoc,
(select convert(int,case when substring(max(t.pk_org),char_length(max(t.pk_org)) ,char_length(max(t.pk_org))) is null then '' else substring(max(t.pk_org),char_length(max(t.pk_org)) ,char_length(max(t.pk_org))) end) from dba.t_dim_org_fix t where t.pk_corp=a.pk_corp) as px
from t_corp a left outer join dba.t_org_fix b on a.pk_corp=b.pk_corp and a.pk_deptdoc=b.pk_deptdoc and a.pk_corp=@cur_pk_corp ;
--初始化参数
set @c_px = 0;
-- 打开游标
open c_corp with hold;
FETCH NEXT c_corp INTO @cur_pk_corp;
--循环一个游标
WHILE @@SQLSTATUS = 0 loop
set @c_px_new =1;
-- 循环所有行
-- 声明局部变量
-- 打开游标
open c_org with hold;
FETCH NEXT c_org INTO @c_pk_corp, @c_orgname, @c_pk_org, @c_pk_deptdoc, @c_px;
-- 循环所有行
WHILE @@SQLSTATUS = 0 loop
-- 循环所有行
set @c_px = @c_px + @c_px_new ;
set @c_px_new = @c_px_new +1;
insert into dba.t_org_fix(pk_org,hr_name,enable_date,disabled_date,remark,pk_corp,pk_deptdoc)
values(@pk_org||'X'||@c_px,@c_orgname,@i_rq,20991231,'', @c_pk_corp, @c_pk_deptdoc);
FETCH NEXT c_org INTO @c_pk_corp, @c_orgname, @c_pk_org, @c_pk_deptdoc, @c_px;
END loop;
-- 关闭游标
close c_org;
FETCH NEXT c_corp INTO @cur_pk_corp;
end loop;
-- 关闭游标
close c_corp ;
--释放资源(最后释放)
DEALLOCATE cursor c_org;
DEALLOCATE CURSOR c_corp;
end
Sybase:游标用法以及嵌套用法的更多相关文章
- Excel中IF函数的嵌套用法(多条件)
Excel中IF函数的嵌套用法(多条件) Excel中IF函数的嵌套用法(多条件) 函数格式:if(logical_test,value_if_true,value_if_false).其中: ...
- Sybase 存储过程中IF的用法
Sybase 存储过程中IF的用法 --@i_val 为参数 or @i_val is null then begin --执行内容 end; end if;
- heckboxlist详细用法、checkboxlist用法、checkboxlist
heckboxlist详细用法.checkboxlist用法.checkboxlist for (int i = 0; i < CheckBoxList1.Items.Count; i++) { ...
- python 字典和列表嵌套用法
python中字典和列表的使用,在数据处理中应该是最常用的,这两个熟练后基本可以应付大部分场景了.不过网上的基础教程只告诉你列表.字典是什么,如何使用,很少做组合说明. 刚好工作中采集promethe ...
- Oracle 游标Cursor 的基本用法
查询 SELECT语句用于从数据库中查询数据,当在PL/SQL中使用SELECT语句时,要与INTO子句一起使用,查询的 返回值被赋予INTO子句中的变量,变量的声明是在DELCARE中.SELECT ...
- Sql语句中Like嵌套用法
一般的Like用法: SELECT U_NAME FROM T_USER WHERE U_NAME LIKE '%A%' 但是,我此次like关键字后面的对应值是一个变量,需要用select语句来实现 ...
- 游标SQL Cursor 基本用法
http://www.cnblogs.com/Gavinzhao/archive/2010/07/14/1777644.html 1 table1结构如下 2 id int 3 name va ...
- 齐博x1标签实例:标签的嵌套用法,调用聚合数据
齐博标签非常强大,可以让不懂程序的你,轻松就能实现所见即所得. 下面跟大家讲解一下,最复杂的运用, 同时使用了union 动态变量参数 与 分页处理标签 比如下面这张图,不仅仅想调用圈子,还想同时调用 ...
- oracle游标循环的嵌套
完成批量修改user_tables中的所有表的栏位名(从MS SQL导入过来,发现大小写问题,造成很多麻烦) 存储过程见下: -- Created on 2012/3/14 by FREE decla ...
随机推荐
- 卡夫卡(kafka)
1.Kafka独特设计在什么地方?2.Kafka如何搭建及创建topic.发送消息.消费消息?3.如何书写Kafka程序?4.数据传输的事务定义有哪三种?5.Kafka判断一个节点是否活着有哪两个条件 ...
- cmake实战第二篇:让我们的代码更像个工程
为工程添加以下文件夹: bin 用来放编译好的可执行二进制文件. src 用来放源代码. lib 用来放编译好的库文件. include 用来放头文件. sudo mkdir -p /code_ ...
- Charlse 抓包
下载Charlse:https://www.charlesproxy.com/ 安装使用: https://www.cnblogs.com/ceshijiagoushi/p/6812493.html ...
- Bouncy Castle Crypto API c# port
Bouncy Castle 是一种用于 Java 平台的开放源码的轻量级密码术包.它支持大量的密码术算法,并提供 JCE 1.2.1 的实现.现在有了C#的版本.下面是网站上的介绍 This port ...
- jQuery与Zepto
jQuery和Zepto是我比较常用的插件.其实用法差不太多,可以说Zepto是jQuery的轻量级替代品,但是不要认为Zepto就没有jQuery好用,因为Zepto有jQuery没有的功能,就是移 ...
- Numba makes Python code fast
Numba: A High Performance Python Compiler http://numba.pydata.org/ 一行代码让python的运行速度提高100倍,你信吗?-聚能聊-云 ...
- Converts Internet addresses to Internet numbers. ip2long long2ip
http://php.net/manual/en/function.long2ip.phpPHP: ip2long - Manual http://php.net/manual/en/function ...
- SpringMVC是单例的,高并发情况下,如何保证性能的?
首先在大家的思考中,肯定有影响的,你想想,单例顾名思义:一个个排队过... 高访问量的时候,你能想象服务器的压力了... 而且用户体验也不怎么好,等待太久~ 实质上这种理解是错误的,Java里有个A ...
- Python高级教程-filter
Python中的filter() Python内建的filter()函数用于过滤序列.和map()类似,filter()也接收一个函数和一个序列.和map()不同的是,filter()把传入的函数依次 ...
- Linux ssh面密码登录
1.生成自己的公钥和私钥 ssh-keygen -t rsa -P '' -f ~/.ssh/id_rsa 进入~/.ssh目录看多了两个文件:id_rsa id_rsa.pub 其中一个是公钥一 ...