【问题标题】:How can i use SQLLoader to load data into my Database tables directly from a tar.gz file?如何使用 SQLLoader 直接从 tar.gz 文件将数据加载到我的数据库表中?
【发布时间】:2016-04-27 01:11:39
【问题描述】:

我正在尝试将数据从外部 tar.gz 文件加载到我的 oracle 数据库表中。我可以使用 SQLLoader 从标准文本文件轻松加载数据,但如果我有 tar.gz 文件而不是 word 文件,我不确定如何做同样的事情。

我发现以下链接有些帮助:

http://www.simonecampora.com/blog/2010/07/09/how-to-extract-and-load-a-whole-table-in-oracle-using-sqlplus-sqlldr-named-pipes-and-zipped-dumps-on-unix/

但是链接的作者使用的是 .dat.gz 而不是 .tar.gz。无论如何,是否可以使用 SQL 加载器从 tar.gz 文件而不是文本文件将数据加载到我的 Oracle 数据库表中?

另外,对我来说,部分问题是我应该每小时将新 tar.gz 文件中的数据加载到同一个表中。例如在第 1 小时,我有 file1.tar.gz 并将其所有 10 行数据加载到我的 oracle 数据库中的 TABLE 中。在第 2 小时,我有 file2.tar.gz,我必须将它的 10 行数据加载到我的 oracle 数据库中的同一个表中。但是 SQLLoader 在 file2.tar.gz 中提取的 10 行不断替换从 file1.tar.gz 中提取的前 10 行。任何方式我都可以使用 SQL Loader 将 file1.tar.gz 中的行保存为第 1-10 行,将 file2.tar.gz 行保存为第 11-20 行?

【问题讨论】:

  • tar 是包含单个文本文件,还是多个文件,或包含文件的目录?
  • @AlexPoole 单个文本文件。对我来说,部分问题是我应该每小时将新 tar.gz 文件中的数据加载到同一个表中。例如在第 1 小时,我有 file1.tar.gz 并将其所有 10 行数据加载到我的 oracle 数据库中的 TABLE 中。在第 2 小时,我有 file2.tar.gz,我必须将它的 10 行数据加载到我的 oracle 数据库中的同一个表中。但是 SQLLoader 在 file2.tar.gz 中提取的 10 行不断替换从 file1.tar.gz 中提取的前 10 行。我可以使用 SQL Loader 将 file1.tar.gz 中的行保存为第 1-10 行,将 file2.tar.gz 行保存为第 11-20 行吗?
  • 请将该信息添加到问题中,而不是作为评论;还要添加您的控制文件。我猜你有truncatereplace,而不是append
  • @AlexPoole 是的,我在控制文件中截断了。我用 append 替换了它并得到了预期的结果。许多坦克!

标签: database oracle tar sql-loader gzip


【解决方案1】:

神奇之处在于“zcat”部分。 zcat 可以从压缩文件中输出。包括 tar.gz。

例如尝试:zcat yourfile.tar.gz 你会看到输出。在您提供的示例 URL 中,他们将 zcat 的输出重定向到 SQLLDR 可以读取的位置。

【讨论】:

  • 嗯 谢谢,这非常有用 对我来说,部分问题是我应该每小时从一个新的 tar.gz 文件加载数据到同一个表中。例如在第 1 小时,我有 file1.tar.gz 并将其所有 10 行数据加载到我的 oracle 数据库中的 TABLE 中。在第 2 小时,我有 file2.tar.gz,我必须将它的 10 行数据加载到我的 oracle 数据库中的同一个表中。但是 SQLLoader 在 file2.tar.gz 中提取的 10 行不断替换从 file1.tar.gz 中提取的前 10 行。我可以使用 SQL Loader 将 file1.tar.gz 中的行保存为第 1-10 行,将 file2.tar.gz 行保存为第 11-20 行吗?
  • 是的,如果您使用您在 URL 中发布的示例,这将追加行,而不是截断,因此您将获得 1-10 文件 1、11-20 文件 2、21-30 文件 3。等
  • 是的,我原来的控制文件有一个我没有注意到的截断部分。用 append 替换它解决了这个问题。非常感谢!
猜你喜欢
  • 1970-01-01
  • 2019-12-17
  • 1970-01-01
  • 1970-01-01
  • 2012-03-08
  • 2013-05-24
  • 1970-01-01
  • 1970-01-01
  • 2015-06-25
相关资源
最近更新 更多