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

通过JDBC在CSV文件上执行SQL

贺飞星
2023-03-14
问题内容

我需要对CSV文件(以逗号分隔的文本文件)应用SQL查询。我的SQL是通过其他工具预定义的,无法更改。它可能在FROM部分中包含嵌入式选择和表别名。

对于我的任务,我发现了两个提供JDBC驱动程序 的开源 库(这是项目要求):

  1. CsvJdbc
  2. XlSQL
  3. JBoss Teiid
  4. 创建一个Apache Derby DB,将所有CSV加载为表格并执行查询。

这些是我遇到的问题:

  1. 它不接受SQL的语法(它使用内部选择和表别名)。此外,自2004年以来一直未进行维护。
  2. 我无法使其工作,因为它具有SAX解析器的依赖关系,该解析器在解析其他文档时会导致异常。同样,自2004年以来没有变化。
  3. 尚未检查它是否支持语法,但似乎有点麻烦。它需要几个实体定义(虚拟数据库,绑定)。他们从邮件列表中告诉我,最新版本支持在运行时创建所需对象。有没有人用它完成如此简单的任务(通常它可以连接到几种类型的数据,例如CSV,XML或其他DBS,并创建一个虚拟的,统一的数据)?
  4. 可以轻松做到吗?

从我考虑/尝试过的4件事中,我认为只有3和4是可行的。关于这些的任何建议,或者可以查询CSV文件的其他任何方式?

干杯


问题答案:

如果您的SQL是预定义的且无法更改,则最好的选择是将CSV加载到数据库中并对其进行查询。

Apache
Derby是一个可行的选择,MySQL也是如此,MySQL甚至具有CSV存储引擎或PostgreSQL。

您的SQL是否使用任何专有功能/扩展?如果是这样,可能会限制您的选择。



 类似资料:
  • 问题内容: 我有一个sql脚本文件,我需要通过java执行其中的命令。我在互联网上搜索了相同的内容,得到了一些定义解析器的代码以拆分SQL语句并执行该代码。但是它们都不适合我的sql脚本文件。因为我的脚本文件同时包含create语句和alter语句,但不带分号[相反,它具有GO]有人可以建议一种执行脚本文件的解决方案吗?谢谢,Mahesh 问题答案: 对于简单的脚本,我通常使用ibatis- Sc

  • 我有一个结构为INSERT语句的备份文件。我的方法是编写一个方法从文件中加载这些语句,并使用JDBC模板执行它们。 编辑:另外,SQL Developer如何处理这些长字符串文本?

  • 我正试图通过C#中的webdriver执行一个javascript文件。以下是我目前掌握的情况: jsfile.js的内容包括 然而当我执行

  • 问题内容: 作为构建过程的一部分,我编写了一个EXE,它将数据库更改推送到登台DB。 这个过程有时会遇到错误,如果是这样,我希望构建失败。如何添加EXE作为构建步骤,以便在失败(我可能会捕获到异常)时使构建失败并记录一些详细信息(类似于NUNit显示失败的方式)? 我还希望该exe记录其他一些详细信息(例如更改内容-构建通过还是失败)。是否有任何有关如何执行此操作的文档? 我正在使用MSBuild

  • 我真的需要帮助,我在stackoverflow上找到的所有问题中都搜索到了,但没有任何效果。我以前从未使用过hibernate,我不知道自己做错了什么 这是我的存储库:https://github.com/ionutincau/test_db 我收到了这个错误:

  • 问题内容: 我正在使用R包通过R访问我的PostgreSQL数据库(9.3)。我有一些非常长且较大的sql查询(从raster2pgsql生成的几个MB大。)。 如何在R中以语句形式发送/执行sql查询文件? 正常方式 似乎无法通过来工作。我试图通过读取整个sql文件作为字符向量,但是这也失败了,因为dbSendQuery显然仅支持单个命令? 问题答案: 或仅用于“ SQL”部分,而不是psql命