Oracle 数据插入与查询问题
Oracle的数据插入与查询顺序到底是客户端决定还是服务器决定???
比如下面Sql文。
Drop table test1;
create table test1 ……;
insert into test1 select * from test;
select * from test1;
Oracle 9i 和11G的客户端跑11G的服务器,出来的顺序就是不一样的呢???
是因为Test1没有主键的问题么??
但是好像两种客户端多次跑出来的结果顺序都是一致的。
所以我们的客户就不干了。。非得要我们给出个理由来。。哪个大神来给个说法????
------解决方案--------------------哎,这个问题不懂。
------解决方案--------------------你给两个客户端的test1 表,建立相同的聚簇索引
然后在两边select * from test1,此时结果就是一致的了
------解决方案--------------------让客户去了解下数据存储机制,页面分配等,几句话就把他忽悠晕了,数据库又不是自已开发的,哪有这么多为什么,什么都知道还在这混,呵呵
------解决方案--------------------不知道用create table as select *的结果如何?
------解决方案--------------------SELECT 按照INSERT顺序排序。看看是不是。
------解决方案--------------------这个不懂
------解决方案--------------------你这个数据表难道没有 rownum 这个列么??
order by rownum 不久可以 保证一致了么?
------解决方案--------------------drop了以后commit一下?
------解决方案--------------------得先去理解堆表和索引组织表的概念。
索引组织表按照索引字段顺序存储,查询顺序得到结果。
堆表存储数据是随机的,哪儿有地方往哪儿存。
查询结果未排序的话,和存储顺序一样。
------解决方案--------------------了解一下堆表和索引组织表的概念吧