отсутствующие данные изображения

Когда я передаю данные, я иногда использую команду 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

Почему?


person Selçuk Kılınç    schedule 10.10.2017    source источник


Ответы (1)


Вы должны установить размер блока данных текста/изображения с параметром -T в bcp, иначе по умолчанию он равен 32768 байт (или используется), что, как вы заметили, недостаточно велико для данных вашего столбца. Больше информации по адресу:

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

Вы можете проверить размер самой большой строки в этом столбце с помощью приведенного ниже запроса, а затем указать соответствующий размер, в качестве альтернативы я обычно просто устанавливаю его как можно выше (т.е. чуть менее 2 ГБ), чтобы убедиться, что я получаю все.

select max(datalength(column_name)) from table

Одно слово предупреждения - это просканирует всю таблицу, поэтому не запускайте запрос в производственной среде на большой таблице.

person Rich Campbell    schedule 14.11.2017