在SQL Developer和Excel中,Oracle输出不同

我面临的是一个非常不同的问题,无法弄清楚可能是什么原因造成的。
我在SQL Developer中运行了一个来自4个不同表的连接的查询。
然后,我从结果网格复制输出并将其复制到Excel。

现在,当我在SQL Developer中查看输出并将其与Excel中的数据进行比较时, 它们看起来不一样

例如,对于同一行,列中有不同的值。 这怎么可能呢?
我正在使用Oracle 12C。

$ 0.02更多…从SQL Developer复制数据对我来说一直很干净。 (@thatjeffsmith是正确的;它是剪贴板的行为)

当我复制到Excel时,有时目标工作表中的默认格式会影响数据的结果外观。 如果您最终导出该电子表格(例如另存为…并selectCSV),则会进行另一次数据转换。

我有同样的问题。
据我所知,这是一个与SQL Developer相关的问题。

你提到Excel,所以我想你是在Windows上。

当你说:copy,windows试图复制一个对象的内容。

问题是:SQL Developer中的网格不是包含所有结果的对象。 它只是显示一部分数据。 所以,实际上,虽然它可以在内存中获得所有结果,但是如果不是一个小区域,则不能从中复制和粘贴。

从SQL Developer到Excel最快的方法是:

  • 运行您的查询
  • 移动到网格的最后,获取所有结果
  • 右键单击网格,然后select: 导出
  • 导出,如你所愿

我明白这种方式不如复制和粘贴速度快,但是由于SQL Developer(或Java,我不知道)的限制,当你有更多的行时,这是正确的方法。

我终于find了我正面临的问题。 在升级到Oracle 12C后,确实是一个Oracle问题。 我们与Oracle支持部门进行了交谈,他们回应了以下内容:涉及散列连接的查询在散列连接将接收行集作为input并一次产生一行作为输出的情况下返回了错误的结果。

因此,查询变得不确定,在不同的情况下给出不同的计数。 当查询在SQL Developer中用where子句运行时,由于where子句,SQL开发者提供了不同的输出,因为它改变了执行计划,但是当我在Excel中粘贴并过滤时,它显示了不同的值在这种情况下,查询计划是不同的,因为没有where子句。

对不起,如果我的问题造成任何混淆。 我只是想确认在向DBA提出这个问题之前是否还有别的东西。