可通过以下方法:
以100条数据为例,如果海量数据可参考。
如test表中有如下数据:
现要将begintime改成当前时间,每10条提交一次。
可用如下存储过程:
declarei int--定义变量
v_count int--定义变量
v_loop int--定义变量
begin
select count(*) into v_count from test--计算表内数据总数
select ceil(v_count/10) into v_loop from dual--计算需要循环次数
i:=1--为i赋值
while i<=v_loop loop--循环退出条件
update test set begintime=sysdate where begintime is null and rownum<=10--执行更新
commit--提交
i:=i+1--i依次加1
end loop--结束循环
end
这个问题不难:直接输出数组的话,好像每增加一个单元还得重定义一次下标,觉得不值。如果是我来做这个的话会把NavName = rs("NavName")改成NavName = NavName &"," &rs("NavName"),最后在循环结束后再NavName=split(NavName,",")来得到。
后面这个补充问题看得不太明白,也许把前面的问题按我说的思路做了后自然解决了。
NavName在上文应该是一个数组呀,怎么又是NavName(1000)这种函数的调用写法了呢。
ubound(NavName)可以取得一个数组的元素个数的。
如果数据量比较大建议在SQL语句中这样写select top 条数 * from Navigation ...这样要显示多少条就取多少条,如果是新闻索引页等建议把 * 换成只用得到的列名,这样虽然在代码上多了十几个字符,但感觉在大并发特别大数据量时的打开速度还是明显的。
补充说明:上面那个用逗号作分隔只是感觉比较像数组易于理解阅读,如果每个单元值是大段文字其中也可能出现逗号的话,这里就用别的比较少用的符号来分隔,比如^ $等。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)