我在下面从源输入字符串,我正在使用mssql数据库 将数据加载到表中,但我从表中得到以下错误:
Error from Component 'LOADP51file.Output_Table_1__table_.load', Partition 0 [U103,DB00156,DB16000,DB00250] ABINITIO(DB00156): Put row failed for db statement ABINITIO(DB16000): ODBC Error ABINITIO(DB16000): SQLCODE: 0 ABINITIO(DB16000): SQLSTATE: 22001 ABINITIO(DB16000): MESSAGE: [Microsoft][ODBC Driver 11 for SQL Server]String data, right truncation ABINITIO(DB00250): Rejected record value: ABINITIO(DB00250): [record id "140426924" check_valt "0" description "IT IND UTP 33 £1 3D Multi ST" style_code "000000"
我观察到上述错误仅由于“描述”列而发生。是因为来自消息来源的1英镑?
Input data 140426924|0|IT IND UTP 33 £1 3D Multi ST|000000
Input dml: string(9) id; string(1) check_valt ; string(30) description ; string(6) style_code ;
Output table DML: record string("\x01",charset="windows-1252", maximum_length=9) id
/*VARCHAR(9) NOT NULL*/; string("\x01",charset="windows-1252", maximum_length=1) check_valt = NULL("") /*CHAR(1)*/; string("\x01",charset="windows-1252", maximum_length=30) description = NULL("") /*VARCHAR(30)*/; string("\x01",charset="windows-1252", maximum_length=6) style_code = NULL("") /*VARCHAR(6)*/; end;
答案 0 :(得分:0)
请尝试将字符集保存为utf8。
如果有效,请告诉我们。
由于 Arijit
答案 1 :(得分:0)
试试这个:
out.description :: string_convert_explicit(in.description,"windows-1252","");
此外,如果截断是问题:
out.description :: string_substring(string_convert_explicit(in.description,"windows-1252",""),1,30);
答案 2 :(得分:0)
尝试在输出表组件之前使用“重新定义格式”组件,并将其转换为“ window-1252”。在此之前,请以ASCII或UTF-8格式执行所有操作。