2017-10-10 1 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 

가 나는 사이베이스의 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 

왜?

답변

0

bcp에서 -T 매개 변수를 사용하여 텍스트/이미지 데이터 블록의 크기를 설정해야합니다. 그렇지 않으면 기본값으로 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 

경고의 한 단어 - 전체 테이블을 테이블 스캔 할 것이므로 큰 테이블의 프로덕션 환경에서 쿼리를 실행하지 마십시오.

관련 문제