【问题标题】:How to copy a .out file to postgresql? [closed]如何将 .out 文件复制到 postgresql? [关闭]
【发布时间】:2012-10-13 11:54:59
【问题描述】:

我需要使用 Postgres 和 Java 将 this file(警告:可能不安全的文件下载站点)插入到数据库中。请下载它并告诉我如何从该文件中提取数据。我尝试了复制命令。一方面,它不允许我使用 header 选项。正如您从文件中看到的那样,我必须从第 4 行开始复制数据。另一件事是分隔符。如果您在 notepad++ 中阅读该文件,您可以将它们视为正确的列,但没有分隔符。我已经尝试并面对这些挑战。请帮我获取自定义查询。或者另一种可以实现我想做的方法。谢谢!

编辑:我使用了更安全的链接来下载文件。希望它有效。

【问题讨论】:

  • 尝试在此处显示文件的摘录,而不是要求每个人都去下载它。 Suuure,当有人给我一个链接时,我会下载这个随机文件,这是安全。当您使用它时,请尝试指定您的 PostgreSQL 版本,以及这个神秘的“.out”文件的来源,即产生它的原因。
  • 猜测您必须为这种时髦的格式编写自己的解析器,或者 (a) 将其转换为干净的 CSV,或者 (b) 直接连接到 PostgreSQL 并插入提取的数据。 Perl、Python 等脚本语言是此类工作的不错选择。
  • 你是对的..我应该把一些数据放在这里,但我不确定格式是否正确..所以我认为这可能会更好。 .out 文件是运行脚本以从 mesowest 提取天气数据的结果。我正在使用最新版本的 PostgreSQL。直接连接到 PostgreSQL 并插入数据是什么意思?
  • 类似于 Python psycopg2 驱动程序或 Perl 的 DBI 和 DBD::Pg。不过,如果它只是固定宽度的数据,那么 Chris 的建议要简单得多。至于文件 - 您正在使用需要电子邮件地址来发送链接的托管服务。没有人愿意这样做。
  • 开枪!我不知道..对不起..我会重新上传并更新问题。我将查找 Perl,看看会发生什么。但是在 Java 中没有办法做到这一点吗?

标签: java postgresql copy sqlbulkcopy out


【解决方案1】:

所以听起来你在做固定宽度的文件。 COPY 不处理这些,所以最好的办法是加载电子表格,导入文件(大多数可以处理固定宽度),然后导出为 csv。然后您可以使用 COPY。

【讨论】:

  • 使用电子表格作为基本 ETL 工具的好主意。
  • 使用Excel的问题是,当我在Excel中打开文件时,整行占了一个单元格。所以我有 A1 到 A30000 中的所有数据,而不是在同一行的不同单元格中。 ://
  • 自从我使用 Excel 已经有一段时间了,但上次我打开了一个向导,我不得不选择固定宽度而不是分隔符。见office.microsoft.com/en-us/excel-help/…
  • 谢谢!我一定会查一下,让你知道结果如何。谢谢! :)
  • @CraigRinger 我使用相对频率的电子表格。
猜你喜欢
  • 1970-01-01
  • 2021-07-15
  • 1970-01-01
  • 1970-01-01
  • 2015-02-18
  • 2012-08-11
  • 1970-01-01
  • 2012-12-22
  • 1970-01-01
相关资源
最近更新 更多