ORACLE 存储过程插入数据排序混乱
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了ORACLE 存储过程插入数据排序混乱相关的知识,希望对你有一定的参考价值。
如题: 写了个存储过程批量向日期表中插入日期,但是插入后的日期并不是按次序来的 核心代码: WHILE (to_date('01/01/2010','mm/dd/yyyy')< to_date('12/31/2015','mm/dd/yyyy')) loop sDate:=to_char(dDate, 'yyyymmdd'); INSERT INTO XX(XX)values(sDate); dDate := dDate + adddays; END loop; dDate:=to_date('01/01/2010','mm/dd/yyyy')
参考技术A 从给出的程序看,执行完程序后,通过xx字段排序查询就可以了。不过给出的程序有点问题,是个死循环。(to_date('01/01/2010','mm/dd/yyyy')< to_date('12/31/2015','mm/dd/yyyy')) 这里不含变量,因此这个条件永远满足。改成如下程序就可以了。DECLARE
adddays NUMBER:=0;
i NUMBER:=5;
--步长
BEGIN
WHILE to_date('01/01/2010','mm/dd/yyyy')+adddays<=
to_date('12/31/2015','mm/dd/yyyy')
LOOP
INSERT INTO
XX(XX)values(to_date('01/01/2010','mm/dd/yyyy')+adddays);
adddays:=adddays+i;
END loop;
END;
运行结果: 参考技术B 楼上说的很有道理,插入的顺序并不一定像select
*
from
XX显示的那样。
想在查询的时候保持与插入时一致的顺序,最简单的方法就是加入一个索引列,设置成自增,在查询的时候按照这一列的值进行排序即可。
以上是关于ORACLE 存储过程插入数据排序混乱的主要内容,如果未能解决你的问题,请参考以下文章