Sqlldr 没有插入完整的文件
Sqlldr does not insert complete file
我正在尝试使用 sqlldr
插入多张图片。一切正常,没有任何问题,但插入后,当我检查图像大小时,它不是实际大小,而是小于实际大小。
我正在使用带有两列的 table 来测试 sqlldr 的工作。 Table 包含一个整数列和一个 blob(用于图像)。
控制文件:
load data infile 'path of text file'
append into table TEST
fields terminated by ","
(
NAME,IMAGE
)
数据文件:
1,path of image
我用来测试文件长度的查询:
select name,length(image),dbms_lob.getlength(image)
from test;
大部分图片的大小在 900 到 1000kb 之间。插入后文件的大小为 29kb。有人可以帮我解决这个问题吗?如果我遵循的步骤是错误的,那么 sqlldr
应该根本不起作用,但它会起作用。我无法弄清楚我在哪里做错了。
您需要告诉 sqlldr
第二列实际上是文件名而不是实际数据:
load data infile 'path of text file'
append into table TEST
fields terminated by ","
(
name,
input_file FILLER,
image LOBFILE(input_file) TERMINATED BY EOF
)
请注意 input_file FILLER,
行,它为输入文件中的第二列定义了一个占位符。表达式 image LOBFILE(input_file)
然后将文件内容放入列 image
有关详细信息,请参阅 SQL*Loader manual, especially the example about loading LOB files
我正在尝试使用 sqlldr
插入多张图片。一切正常,没有任何问题,但插入后,当我检查图像大小时,它不是实际大小,而是小于实际大小。
我正在使用带有两列的 table 来测试 sqlldr 的工作。 Table 包含一个整数列和一个 blob(用于图像)。
控制文件:
load data infile 'path of text file'
append into table TEST
fields terminated by ","
(
NAME,IMAGE
)
数据文件:
1,path of image
我用来测试文件长度的查询:
select name,length(image),dbms_lob.getlength(image)
from test;
大部分图片的大小在 900 到 1000kb 之间。插入后文件的大小为 29kb。有人可以帮我解决这个问题吗?如果我遵循的步骤是错误的,那么 sqlldr
应该根本不起作用,但它会起作用。我无法弄清楚我在哪里做错了。
您需要告诉 sqlldr
第二列实际上是文件名而不是实际数据:
load data infile 'path of text file'
append into table TEST
fields terminated by ","
(
name,
input_file FILLER,
image LOBFILE(input_file) TERMINATED BY EOF
)
请注意 input_file FILLER,
行,它为输入文件中的第二列定义了一个占位符。表达式 image LOBFILE(input_file)
然后将文件内容放入列 image
有关详细信息,请参阅 SQL*Loader manual, especially the example about loading LOB files