当前位置: 首页 > 面试题库 >

在Oracle上使用ORDER插入

蒋畅
2023-03-14
问题内容

在Oracle
10g上,我们需要将视图中的记录插入表中,以支持本身没有sort或ORDER选项的哑客户端应用程序。有什么方法可以控制我们的INSERT语句将记录添加到目标表的顺序?


问题答案:

不能 可靠地控制Oracle以何种顺序检索表的行,而不带ORDER BY

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

您可以使用INDEX
ORGANIZED表
按照PK的顺序存储行。此后在该表上进行的大多数简单查询将产生一组已排序的行。
但是,如果您未指定ORDER BY (这取决于查询和访问路径,则行可能会以任何顺序出现),则 这不能保证oracle将按该顺序选择行

您还可以使用带有排序顺序的视图,如果您无法触摸应用程序,则这可能是最好的选择(重命名表,使用表名创建视图,让应用程序认为它查询了表)。我不知道您的情况是否可行。



 类似资料:
  • 我很难将存储过程从SQLServer转换为Oracle以使我们的产品与之兼容。 我有一些查询,根据时间戳返回一些表的最新记录: SQL Server: = 但Oracle: = 我以这种方式封装了Oracle查询以满足我的需求: 这是可行的。但对我来说,这听起来像是一个可怕的黑客攻击,尤其是当我在相关的表中有很多记录时。 实现这一目标的最佳方式是什么?

  • 我目前正在验证一个在Oracle for DB2上开发的应用程序。因为我们不想维护两个独立的源,所以我需要一些查询来将blob插入到一个字段中,该字段在oracle和db2中都可以使用。我没有任何标识符来区分应用程序在哪个DB下运行。 我在oracle中使用,在DB2中使用,它们是互不兼容的。

  • 数据库:Oracle 11gr2Web应用:JSP(Java)我有两个表: IdCity_FK引用来自“城市”的列 Id。 问题:如何从具有以下字段的插入.jsp页面插入数据:人名,城市。 我希望用户输入自己的名字,并从动态生成的列表框中选择一个城市(使用游标Oracle或其他方法)。< br >例如,不输入:Andrew,12,而是输入Andrew并选择New York。我使用Oracle RE

  • 问题内容: 直到11g版本(包括11g),Oracle中似乎都没有AUTO_INCREMENT的概念。 如何在Oracle 11g中创建行为类似于自动增量的列? 问题答案: 表定义: 触发定义: 更新: IDENTITY 列现在在Oracle 12c上可用: 或指定起始值和增量值,也防止任何插入到标识列(GENERATED ALWAYS)中(同样,仅适用于Oracle 12c +) 另外,Orac

  • 我正面临着从Oracle数据库12c获取阿拉伯语内容的问题,我已经回答了大多数问题,但没有任何问题与我一起工作。 我的阿拉伯字符返回如下“?????” 即使在java上,当我获得数据时,它也不会返回阿拉伯值 windows 10笔记本电脑(使用windows 10管理用户登录) Oracle 12C(使用系统用户登录) Java版本“1.8.0_152” 我在这里和网上找到了很多问题,比如: 无法