在单行(单元格)中将数据加载到 db2
load data to db2 in a single row (cell)
我需要将整个文件(仅包含 ASCII 文本)加载到数据库(DB2 Express 版)。 table 只有两列(ID、TEXT)。 ID 列是 PK,有自动生成的数据,而文本是 CLOB(5): 我不知道输入参数 5,它是 Data Studio 默认输入的。
现在我需要使用加载实用程序将文本文件(包含 5 MB 的数据)保存在一行中,即在列 TEXT 中。我不希望文本被分成不同的行。
提前感谢您的回答!
首先,您可能想要重新定义您的 table:CLOB(5)
意味着您希望列中有 5 个字节,这对于 5 MB 的文件来说是不够的。之后,您可以使用带有 lobsinfile
修饰符的 DB2 IMPORT
或 LOAD
命令。
创建一个文本文件并为每个要导入的文件放置 LOB 位置说明符 (LLS),每行一个。
LLS is a way to tell IMPORT where to find LOB data. It has this
format: <file path>[.<offset>.<length>/]
, e.g.
/tmp/lobsource.dta.0.100/
to indicate that the first 100 bytes of
the file /tmp/lobsource.dta
should be loaded into the particular LOB
column. Notice also the trailing slash. If you want to import the
entire file, skip the offset
and length
part. LLSes are placed in
the input file instead of the actual data for each row and LOB column.
因此,例如:
echo "/home/you/yourfile.txt" > /tmp/import.dat
既然你说 ID 将在输入数据中生成,你不需要在输入文件中输入它们,只是不要忘记使用适当的命令修饰符:identitymissing
或 generatedmissing
,取决于 ID 列的定义方式。
现在您可以连接到数据库和 运行 IMPORT
命令,例如
db2 "import from /tmp/import.dat of del
modified by lobsinfile identitymissing
method p (1)
insert into yourtable (yourclobcolumn)"
为了便于阅读,我将命令分成多行,但您应该在一行中键入。
method p (1)
means parse the input file and read the column in position 1.
我需要将整个文件(仅包含 ASCII 文本)加载到数据库(DB2 Express 版)。 table 只有两列(ID、TEXT)。 ID 列是 PK,有自动生成的数据,而文本是 CLOB(5): 我不知道输入参数 5,它是 Data Studio 默认输入的。
现在我需要使用加载实用程序将文本文件(包含 5 MB 的数据)保存在一行中,即在列 TEXT 中。我不希望文本被分成不同的行。
提前感谢您的回答!
首先,您可能想要重新定义您的 table:CLOB(5)
意味着您希望列中有 5 个字节,这对于 5 MB 的文件来说是不够的。之后,您可以使用带有 lobsinfile
修饰符的 DB2 IMPORT
或 LOAD
命令。
创建一个文本文件并为每个要导入的文件放置 LOB 位置说明符 (LLS),每行一个。
LLS is a way to tell IMPORT where to find LOB data. It has this format:
<file path>[.<offset>.<length>/]
, e.g./tmp/lobsource.dta.0.100/
to indicate that the first 100 bytes of the file/tmp/lobsource.dta
should be loaded into the particular LOB column. Notice also the trailing slash. If you want to import the entire file, skip theoffset
andlength
part. LLSes are placed in the input file instead of the actual data for each row and LOB column.
因此,例如:
echo "/home/you/yourfile.txt" > /tmp/import.dat
既然你说 ID 将在输入数据中生成,你不需要在输入文件中输入它们,只是不要忘记使用适当的命令修饰符:identitymissing
或 generatedmissing
,取决于 ID 列的定义方式。
现在您可以连接到数据库和 运行 IMPORT
命令,例如
db2 "import from /tmp/import.dat of del
modified by lobsinfile identitymissing
method p (1)
insert into yourtable (yourclobcolumn)"
为了便于阅读,我将命令分成多行,但您应该在一行中键入。
method p (1)
means parse the input file and read the column in position 1.