2017-10-10 126 views
0

當我傳輸數據時,我有時使用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數據庫,我已經轉移與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 

爲什麼?

回答

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 

一個字 - 這將表掃描整個表,所以不要在一個大表上運行在生產環境中的查詢。