将Dbeaver上的结果集导出为CSV文件。

122

通常我使用Windows版的Dbeaver,并通过以下步骤导出我的结果集:

  • 运行查询 --> 选择结果 --> 导出结果集 --> 选择导出到剪贴板 --> 完成

这一步骤将结果集放入我的剪贴板中,我可以在任何地方粘贴它以进行操作。

问题是现在我正在使用Mac版的Dbeaver,但该指南无法工作。我可以一直执行操作,直到像下面的图片一样选择我的结果集:

exporting data set

但是,当我进行最后一步时,我得到了:没有查询

请注意,“源”中应该显示产生结果集的查询,但实际上只显示“select”。因此,它不会选择我的结果或任何其他内容(除了“成功”之外)。

通常情况下,我的查询会自动显示在那里,我找不到任何可以在菜单中解决此问题的选项。


经过一些测试,我意识到它只提取了查询的第一行。由于它只包含“Select”,这就是dbeaver导出的全部内容。现在我必须理解为什么会发生这种情况。 - Rafael Meirelles
4个回答

183

您不需要使用剪贴板,可以直接将整个结果集(而不仅是您看到的部分)导出到文件:

  1. 执行您的查询
  2. 在结果中的任何位置右键单击
  3. 单击“导出结果集…”以打开导出向导
  4. 选择您想要的格式(根据您的问题选择CSV)
  5. 在单击“下一步”时,请查看下一个窗格中的设置。
  6. 设置文件将创建的文件夹,并单击“完成”

导出在后台运行,当它完成时弹出窗口。


在较新的DBeaver版本中,您只需:

  1. 右键单击要导出的查询SQL
  2. 执行>从查询导出
  3. 选择您想要的格式(根据您的问题选择CSV)
  4. 在单击“下一步”时,请查看下一个窗格中的设置。
  5. 设置文件将创建的文件夹,并单击“完成”

导出在后台运行,当它完成时弹出窗口。

与以前的导出方式相比,这样可以节省第1步(执行查询),这对于时间/资源密集型查询非常方便。


1
后续选项的措辞很奇怪,但是不去管它们似乎可以实现我想要的目标:将csv复制到文件夹中。如果有人有关于这些选项的文档,那么在这里发布将是一件友好的事情。(此链接已过时:https://github.com/dbeaver/dbeaver/wiki/Data-transfer) - geneorama
这个完美地运作。我有一个包含2500多个查询的脚本文件,我想将它们发送到同一个csv文件中。我不能在查询之间使用union语句,因为这样会导致数据类型不匹配错误。是否有一种方法可以使用sql/script文件来完成这个任务?提前感谢。 - TheL0grus
我认为你应该通过使用联合(将不同类型的列强制转换为通用数据类型)来解决这个问题。 - Sébastien Nussbaumer

9

在版本21.0 / 发布日期为2021年3月1日中:

  1. 右键单击要导出的查询SQL
  2. 导出数据
  3. 从查询中选择您想要的格式(根据您的问题选择CSV)
  4. 点击“下一步”时,请在下一个窗格中查看设置。
  5. 设置文件将被创建的文件夹,并点击“完成”

1
在21.1版本中 - 右键单击带有查询结果的网格 - Sandre
1
在21.0版本中:右键单击查询->执行->从查询导出 - jmm

8
问题在于勾选了“打开新连接”的框。因此,我无法使用我的临时表。

0

你为什么不能选择结果,右键点击并选择高级复制 -> 高级复制呢?我在 Mac 上,这是我经常将结果复制到剪贴板粘贴的方式。


3
如果结果集非常大,结果视图无法显示所有记录怎么办? - Aetherus
1
你是否遇到了内存溢出异常?如果你有一个如此庞大的结果集,将其复制到剪贴板并不是一个好主意,我建议将其导出为CSV格式。当你导出一个结果集时,DBeaver会导出执行查询以填充结果集查看器的整个结果,而不仅仅是显示的内容。 - Kyle
3
只有大约40000个记录,每个记录有5列。RAM足以容纳这些数据。然而,DBeaver默认只显示200个记录。如果我想要所有的数据,就必须一遍又一遍地向下滚动,这很烦人。 - Aetherus
我认为这不是一个优雅的解决方案。 - Harper Koo
@HarperKoo 为了导出数据重新运行整个查询(在已经运行查询以显示结果的情况下)也不是很优雅。 - Jivan

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接