社区
基础和管理
帖子详情
用游标打开一百万条记录的问题,进者又分!
yinleiyoung
2005-11-26 12:28:24
我现在想用游标对一百万条记录操作,不知道我需要注意那些地方?
请有经验的人进来帮我一下,谢谢!!
是不是需要分批读取?
具体怎么做给点代码,示范一下
谢谢
...全文
170
9
打赏
收藏
用游标打开一百万条记录的问题,进者又分!
我现在想用游标对一百万条记录操作,不知道我需要注意那些地方? 请有经验的人进来帮我一下,谢谢!! 是不是需要分批读取? 具体怎么做给点代码,示范一下 谢谢
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
9 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
heyixiang
2005-11-28
打赏
举报
回复
关键在于每条记录的处理时间,还有就是利用到索引
yinleiyoung
2005-11-27
打赏
举报
回复
谢谢上面的兄弟们
继续讨论一下
liuyi8903
2005-11-27
打赏
举报
回复
注意关闭游标。
ATGC
2005-11-26
打赏
举报
回复
直接读就是了啊,100w记录不多的
zealot_zk
2005-11-26
打赏
举报
回复
拥有表处理100万数据时主要注意检索时一定要使用索引,另外就是对但条数据的处理不要时间过长,比如写文件等。
ab5669
2005-11-26
打赏
举报
回复
用游标处理100万条记录,没问题,只是速度慢了些。在处理的字段上要利用索引,以加快速度。
bierbin
2005-11-26
打赏
举报
回复
不需要有特殊的顾虑,只要你的SQL语句本身利用索引正确……
hlp912
2005-11-26
打赏
举报
回复
For Rec_Dispatch In ( Select Sizerun ,
Qty
From f_Dispatch_d
Where Fact_No = vi_fact_no
And Dis_No = vi_dis_no
And Fact_Odr_No = vi_odr_no
And Bat_No = vi_bat_no
And Qty > 0
Order By Sizerun )
Loop
/*处理过程*/
End Loop
hlp912
2005-11-26
打赏
举报
回复
在oracle中游标的处理我是用这种方式,这种方式效率要高些:
For Rec_Dispatch In ( Select Sizerun ,
Qty
From f_Dispatch_d
Where Fact_No = vi_fact_no
And Dis_No = vi_dis_no
And Fact_Odr_No = vi_odr_no
And Bat_No = vi_bat_no
And Qty > 0
Order By Sizerun )
Loop
Vn_Barcode_Count := Vn_Barcode_Count + Vn_BarSize_Count ;
Vn_BarSize_Count := Ceil( Rec_Dispatch.Qty/vi_barcode_qty ) ;
Vn_LastBar_Qty := Mod( Rec_Dispatch.Qty,vi_barcode_qty ) ;
If Vn_LastBar_Qty = 0 Then
Vn_LastBar_Qty := vi_barcode_qty ;
End If ;
Vc_BarNo := Vc_Lotnom||'21'||To_Char( Vn_Barcode_Seq+Vn_Barcode_Count+Vn_BarSize_Count,'fm0000' ) ;
Insert Into Barm_M( Fact_No ,Bar_no ,Lot_No ,Fact_Odr_No ,Sizerun ,
Qty ,Add_Mark ,Dis_No ,Bat_No ,Bar_Date )
Values(vi_fact_no ,Vc_BarNo ,Vc_Lotnom ,vi_odr_no ,Rec_Dispatch.Sizerun,
Vn_LastBar_Qty ,VC_BAR_ADD_MK1 ,vi_dis_no ,vi_bat_no ,To_Char(SysDate,'YYYYMMDD') );
Vc_BarNo := Vc_Lotnom||'31'||To_Char( Vn_Barcode_Seq+Vn_Barcode_Count+Vn_BarSize_Count,'fm0000' ) ;
Insert Into Barm_M( Fact_No ,Bar_no ,Lot_No ,Fact_Odr_No ,Sizerun ,
Qty ,Add_Mark ,Dis_No ,Bat_No ,Bar_Date )
Values(vi_fact_no ,Vc_BarNo ,Vc_Lotnom ,vi_odr_no ,Rec_Dispatch.Sizerun,
Vn_LastBar_Qty ,VC_BAR_ADD_MK1 ,vi_dis_no ,vi_bat_no ,To_Char(SysDate,'YYYYMMDD') );
Vc_BarNo := Vc_Lotnom||'51'||To_Char( Vn_Barcode_Seq+Vn_Barcode_Count+Vn_BarSize_Count,'fm0000' ) ;
Insert Into Barm_M( Fact_No ,Bar_no ,Lot_No ,Fact_Odr_No ,Sizerun ,
Qty ,Add_Mark ,Dis_No ,Bat_No ,Bar_Date )
Values(vi_fact_no ,Vc_BarNo ,Vc_Lotnom ,vi_odr_no ,Rec_Dispatch.Sizerun,
Vn_LastBar_Qty ,VC_BAR_ADD_MK1 ,vi_dis_no ,vi_bat_no ,To_Char(SysDate,'YYYYMMDD') );
-------------------------------------------------------------------------
Vn_Count := Vn_Count + 1 ;
End Loop ;
SQL Server
游标
的简单使用
SQL语句通常都可产生或处理一组
记录
,但是许多应用程序,尤其是T-SQL嵌入的主语言,通常不能把整个结果集作为一个单元来处理,这些应用程序就需要用一种机制来保证每次处理结果集中的一行或几行,
游标
(cursor)就提供...
让数据库
游标
变得简单
游标
是指向查询结果集的一个指针,它是一个通过定义语句与一
条
Select语句相关联的一组SQL语句,即从结果集中逐一的读取一
条
记录
。
游标
包含两方面的内容: ●
游标
结果集:执行其中的Select语句所得到的结果集...
SQL Server 2014 索引和
游标
主讲内容: 第一讲 课程简介 第二讲 索引简介 第三讲 创建索引 第四讲 查看索引 第五讲 索引管理 第六讲 全文索引 等课程
CURSOR
游标
的使用
通过
游标
逐一获取一
条
记录
,并赋给主变量,交由主语言进一步处理。
游标
的使用 有些像文件的使用,需要定义声明,
打开
关闭,操作等等。 前面都要加EXEC SQL,表示执行SQL语句。 (1)说明
游标
(声明——DECLARE) ...
Oracle面试题
2. 显示
游标
是用cursor...is命令定义的
游标
,它可以对查询语句(select)返回的多
条
记录
进行处理;隐式
游标
是在执行插入 (insert)、删除(delete)、修改(update)和返回单
条
记录
的查询(select)语句时由PL/SQL自动定义的...
基础和管理
17,377
社区成员
95,128
社区内容
发帖
与我相关
我的任务
基础和管理
Oracle 基础和管理
复制链接
扫一扫
分享
社区描述
Oracle 基础和管理
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章