유니 코드 테이블로 정의 된 DB2 테이블이 있습니다. Char (35)로 정의 된 필드가 있습니다. 이제는 길이가 35이지만 독일의 움라우트가 포함 된 매개 변수가 있으므로 35 바이트 이상이 필요합니다. Insert 또는 Update 문을 실행하려고하면 SQLCODE -302가 표시됩니다. 매개 변수 변수에서 한 문자를 제거하면 테이블이 올바르게 작동하여 독일어 움라우트가 올바르게 반환됩니다. SQuirreL을 사용하여 DB2 드라이버 3.64.82 및 매개 변수가 아니라 문자열 상수를 사용하여 시도했으며 문자열 상수의 -302에 대한 펜던트 인 SQLCode -404를 반환했습니다. 여기 내가 SQirreL SQL 클라이언트 3.4.0에서 실행하려고 SQL 문입니다 : 이것은 DB2 드라이버에 오류가 발생했을 경우, 또는Z/OS 유니 코드 테이블 용 DB2 V10 및 JDBC는 유니 코드 문자가 포함 된 매개 변수에 대해 -302를 얻습니다.
INSERT INTO LEA0001.VP_105 (Anlage_Zeitpunkt, Anlage_User, Aender_Zeitpunkt,
Aender_User, V_Nr, lief_id_ref_nr, gueltig_bis_zp, gueltig_ab_zp,
erstprod_termin,druckfreig_termin, ANF_SDB, IST_ERSTPROD_KW, pr_name, pr_strasse,
pr_plz, pr_ort, pr_land) values (current timestamp, 'HUGO', current timestamp, '',
48854, 2769, '9999-12-31 23:59:59.999999', '2014-11-25 15:40:36.395542',
'0001-01-01', '0001-01-01', 'N', 'N', 'Getränkeggggggggggggggggggggggggggg', '', '', '', '')
내가 알고 싶은 것은 설정 또는이있는 경우 작동하게하는 드라이버 구성. 나에게는 운전사가 현재 필드의 지정된 길이와 바이트 수를 비교 한 다음 36> 35이기 때문에 그 오류를 던지고있는 것으로 보입니다. 그러나 유니 코드 테이블의 경우 이것이 옳지 않다는 것을 분명히해야합니다.
버전 정보 : 다람쥐 나는 IBM DB2 인터넷 드라이버와 db2jcc 드라이버 버전 3.64.82을 사용 DB를은 Z/OS DB2 V10 REL 1015
아 설명해. 귀하의 답변 주셔서 감사합니다! 그래서 우리는 테이블을 다시 정의하여 이미 필드를 Char (70) – Starryk