将句点分隔的文本文件加载到 db2 中
Load period-separated text file into db2
我需要将整个文本文件(仅包含 ASCII 文本)加载到数据库中(DB2 Express 版)。 table 只有两列 EXAMPLE_TABLE
(ID, TEXT)。 ID
列是 PK,具有自动生成的数据,而文本是 VARCHAR(50)
.
现在我需要使用load/import实用程序将文本中的每个句子保存到EXAMPLE_TABLE
中,也就是说,我们每个句子都有一行。行 ID 应自动生成,但已在 table 创建时指定。导入实用程序应考虑句点“.”。作为分隔符(否则我不知道如何提取句子)。
如何在 DB2 中完成此操作?
提前致谢!
使用分隔文件时,标准 DB2 import
和 load
实用程序无法指定行记录终止符。 LF
字符(或 Windows 上的 CRLF
)是唯一可以使用的记录终止符。
因此,在使用 import
或load
,生成一个文件,每个句子单独一行。
您可以使用 tr
:
cat file | tr '.' '\n' > file.load
db2 "import from file.load of del insert into example_table (text)"
请记住,您可能还需要考虑句点后的空格,因此您不会在 table 中的每个 "sentence" 的开头以前导空格结尾,您可能还想考虑额外的空格(即每个段落之间的空行)。
我需要将整个文本文件(仅包含 ASCII 文本)加载到数据库中(DB2 Express 版)。 table 只有两列 EXAMPLE_TABLE
(ID, TEXT)。 ID
列是 PK,具有自动生成的数据,而文本是 VARCHAR(50)
.
现在我需要使用load/import实用程序将文本中的每个句子保存到EXAMPLE_TABLE
中,也就是说,我们每个句子都有一行。行 ID 应自动生成,但已在 table 创建时指定。导入实用程序应考虑句点“.”。作为分隔符(否则我不知道如何提取句子)。
如何在 DB2 中完成此操作?
提前致谢!
使用分隔文件时,标准 DB2 import
和 load
实用程序无法指定行记录终止符。 LF
字符(或 Windows 上的 CRLF
)是唯一可以使用的记录终止符。
因此,在使用 import
或load
,生成一个文件,每个句子单独一行。
您可以使用 tr
:
cat file | tr '.' '\n' > file.load
db2 "import from file.load of del insert into example_table (text)"
请记住,您可能还需要考虑句点后的空格,因此您不会在 table 中的每个 "sentence" 的开头以前导空格结尾,您可能还想考虑额外的空格(即每个段落之间的空行)。