缺少图像数据

时间:2017-10-10 09:23:11

标签: sql sybase-ase bcp

当我传输数据时,我有时会使用bcp命令。 像这样:

---Out
bcp dbname..tableName out tableName.bcp -Uuser -SSERVERNAME -n -Jiso88599


---IN
bcp dbname..tableName in tableName.bcp -Uuser -SSERVERNAME -n -Jiso88599

我有一个sybase ase db,我用bcp命令传输了数据。 桌子上有一个图像列。但是当我转移它们时,图像列数据丢失了。

只转移了一小部分。

--- Prod
SELECT datalength(image_column) FROM dbo.tableName where id='5eb9f' --> 57375

--- TEST
SELECT datalength(image_column) FROM dbo.tableName where id='5eb9f' --> 32768

为什么?

1 个答案:

答案 0 :(得分:0)

您必须在bcp中使用-T参数设置文本/图像数据块的大小,否则默认为32768字节(或用于),正如您所注意到的那样,它对于列的数据来说不够大。更多信息:

http://infocenter.sybase.com/help/index.jsp?topic=/com.sybase.infocenter.dc30191.1550/html/utility/X14951.htm

您可以通过以下查询检查该列中最大行的大小,然后适当调整大小,或者我倾向于将其设置为尽可能高(即略低于2GB)以确保我获得所有内容。

select max(datalength(column_name)) from table

一句警告 - 这将表扫描整个表,因此不要在大桌子上的生产环境中运行查询。