2014-03-19 1 views
0

Linux 상자에 ODBC iseries 드라이버를 성공적으로 설치했습니다. DB2 iseries (6)를 호출합니다. CDESC VARCHAR (3000) 열에서 데이터를 가져 오기 전까지는 모든 것이 원활하게 실행됩니다. 문자가 255 이하이면 문제가 없지만 255 이상이면 쿼리가 실패하고 앱이 중단됩니다. 테이블의 데이터는 255를 훨씬 넘었지만 다시 되돌릴 수는 없습니다. DESC로 CAST (CDESC AS TEXT)를 시도했지만 작동하지 않습니다. 드라이버 설정 또는 열 유형 변경에 대한 의견이 있으십니까? 미리 감사드립니다.DB2 iSeries PDO VARCHAR

+0

"255"란 무엇입니까? 그것은 CDESC의 문자를 십진법으로 표현한 것입니까, 아니면 CDESC의 길이입니까? – user2338816

답변

0

VARCHAR은 2 바이트 [storesDBCS]가 아닌 1 바이트 문자 세트 데이터 [SBCS]의 데이터 유형입니다. 따라서 255 자 이상의 문자를 저장할 수 없습니다.

2 바이트 문자를 지원해야하는 경우 유니 코드 문자 집합을 처리하는 NVARCHAR을 볼 수 있습니다.

아마도 문자 집합으로 번역하는 것이 문제 일 수 있습니다. DB2 for i는 ASCII 관련 문자 세트가 아닌 EBCDIC 기반 문자 세트에 SBCS 데이터를 저장합니다. 마지막 CCSID는 무엇이고 저장되는 데이터는 무엇입니까?

관련 문제