【问题标题】:Oracle SQL: How to Query A CSV With No Header/Column Names?Oracle SQL:如何查询没有标题/列名的 CSV?
【发布时间】:2016-07-07 16:37:22
【问题描述】:

我有一个使用 CSV 文本驱动程序的第三方工具,它允许对导入该工具的 CSV 数据执行 SQL 查询。大多数 Oracle SQL 查询都可以解决这个问题,而很多则不能。

我有一个要求,我必须使用没有可用列名或标题字段的 CSV 文件读取数据并将其导入工具。如何在没有定义列名或标题的表上执行 SQL 查询?

样本表:

AB  100 GPAA    9876
AC  101 GPAB    9877
AD  102 GPAC    9878

【问题讨论】:

  • 如果这个工具正在执行查询,那么你必须解释这个工具是什么。我们无法为您提供使用某些未知方言的工具的 sql 帮助
  • 执行select * where 1=2 并查看显示的列名。
  • 外部表格非常适合从平面文件中进行选择:oracle-base.com/articles/9i/external-tables-9i
  • 该工具仅使用 com.hxtt.sql.text.TextDriver 对 CSV 文件执行查询。
  • @DanBracuk:我怀疑这行得通。应用程序/数据库如何知道int=intcolnum=int 之间的区别?

标签: sql oracle csv


【解决方案1】:

您可能需要在运行查询之前添加标题。是否存在数据最终会出现在其中的表格?如果是这样,您可以先从那里导出列名,然后将 CSV 信息附加到新创建的文件中。

【讨论】:

  • 我希望这在我使用的工具中是可能的。我想没有其他方法可以“要求”将标题添加到文件中。
【解决方案2】:

显然,在使用 CSV SQL 文本驱动程序与 CSV 文件交互时,您可以指定 CSV 文件是否有标题。

jdbc:csv:////<path_to_file>/?_CSV_Header=false;

然后,我们可以有这样的查询

select distinct (column1) as accountID, (column2) as groupID from csv_file_name

参数(column1), (column2)...从左到右表示文件中的实际列,必须这样编写才能使查询正常工作。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2021-08-09
    • 1970-01-01
    • 2021-12-26
    • 1970-01-01
    • 1970-01-01
    • 2017-03-26
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多