gpt4 book ai didi

sql - 在 Oracle 上使用 ORDER 插入

转载 作者:行者123 更新时间:2023-12-02 05:32:20 24 4
gpt4 key购买 nike

在 Oracle 10g 上,我们需要将 View 中的记录插入到表中,以支持本身没有排序或 ORDER 选项的愚蠢客户端应用程序。有没有办法控制我们的 INSERT 语句向目标表添加记录的顺序?

最佳答案

如果没有 ORDER BY,您不能可靠地控制 Oracle 检索表行的顺序。

此外,如果没有/*+APPEND*/ 提示,Oracle 会将行物理地存储在有空间的堆表中,该空间可能不在表的末尾!您可能认为 Oracle 按顺序插入它们,但任何 DML 或并发事件(插入 2 个以上的 session )都可能产生不同的物理组织。

你可以使用 INDEX ORGANIZED table按 PK 的顺序存储行。此后对该表的大多数简单查询将生成一组已排序的行。 但是,如果您未指定 ORDER BY(根据查询和访问路径,行可能以任何顺序出现),则不能保证 oracle 将按该顺序选择行。

您还可以使用带有排序方式的 View ,如果您不能接触应用程序(重命名表,使用表名创建 View ,让应用程序认为它查询 table )。我不知道你的情况是否可行。

关于sql - 在 Oracle 上使用 ORDER 插入,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1339991/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com