我如何使用 SQLLoader 将数据直接从 tar.gz 文件加载到我的数据库表中?

How can i use SQLLoader to load data into my Database tables directly from a tar.gz file?

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

我发现以下 link 有点帮助:

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/

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

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

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

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