sql – 在Oracle上使用ORDER INSERT
发布时间:2020-12-12 16:25:31 所属栏目:MsSql教程 来源:网络整理
导读:在Oracle 10g上,我们需要将视图中的记录插入到表中,以支持本身没有sort或ORDER选项的哑客户端应用程序.有没有办法控制INSERT语句将记录添加到目标表的顺序? 解决方法 您无法可靠地控制Oracle在没有ORDER BY的情况下检索表行的顺序. 此外,如果没有/ * APPEND
在Oracle 10g上,我们需要将视图中的记录插入到表中,以支持本身没有sort或ORDER选项的哑客户端应用程序.有没有办法控制INSERT语句将记录添加到目标表的顺序?
解决方法您无法可靠地控制Oracle在没有ORDER BY的情况下检索表行的顺序.此外,如果没有/ * APPEND * /提示,Oracle会将行物理存储在有空间的堆表中,这可能不在表的末尾!您可能认为Oracle按顺序插入它们,但任何DML或并发活动(插入2个会话)可能会产生不同的物理组织. 您可以使用INDEX ORGANIZED table以PK的顺序存储行.此后,该表上的大多数简单查询将生成一组已排序的行.但是,如果您没有指定ORDER BY(根据查询和访问路径,行可以按任何顺序排列),这不能保证oracle将按该顺序选择行. 您也可以使用带有订单的视图,如果您无法触摸应用程序,这可能是您最好的选择(重命名表,使用表的名称创建视图,让应用程序认为它查询表).我不知道你的情况是否可行. (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |