Преобразование кодировки из строки в окно-1252 в abinitio

У меня ниже строка ввода из источника, и я использую базу данных 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;

3 ответа

Попробуй это:

out.description :: string_convert_explicit(in.description,"windows-1252","");

Кроме того, если усечение является проблемой:

out.description :: string_substring(string_convert_explicit(in.description,"windows-1252",""),1,30);

Пожалуйста, попробуйте сохранить набор символов как utf8.

Дайте нам знать, если это работает.

Спасибо Ариджит

Попробуйте использовать компонент "Переопределить формат" перед компонентом таблицы вывода и преобразовать его в "window-1252". До этого выполняйте все операции в ASCII или UTF-8.

Другие вопросы по тегам