SQL Developer和excel中的Oracle输出不同

时间:2016-02-24 04:03:54

标签: excel oracle oracle-sqldeveloper

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

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

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

3 个答案:

答案 0 :(得分:1)

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

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

答案 1 :(得分:0)

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

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

当你说:copy时,windows会尝试复制对象的内容。

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

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

  • 运行查询
  • 移至网格末尾,以获取所有结果
  • 右键点击网格,然后选择:导出
  • 根据需要导出

据我所知,这种方式并不像copy& amp;但是,由于SQL Developer(或Java,我不知道)的限制,当你有更多的行时,这是正确的方法。

答案 2 :(得分:0)

我终于找到了我面临的问题。在升级到Oracle 12C之后,这确实是一个Oracle问题。我们与Oracle支持人员进行了交谈,他们回复了以下内容: 如果散列连接将接收行集作为输入并且一次产生一行作为输出,则涉及散列连接的查询返回错误结果。

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

很抱歉,如果我的问题引起任何混淆。我只想在要求DBA与Oracle支持部门联系之前确认是否还有其他内容。