Ошибка SQL Server R Services неверный ввод в utf8towcs

Попытка запустить процедуру R в базе данных с помощью Microsoft SQL Server R Services через sp_execute_external_script, но я получаю эту ошибку, даже если я уменьшаю свой R-скрипт, чтобы он ничего не делал, но возвращал пустой фрейм данных.

A 'R' script error occurred during execution of '' 
Msg 39019, Level 16, State 1, Line 2
An external script error occurred: 
Error in sort.list(y) : invalid input 'BiototÆs spots' in 'utf8towcs'
Calls: as.data.frame ... as.data.frame -> as.data.frame.character -> factor -> sort.list

Error in ScaleR.  Check the output for more information.
Error in eval(expr, envir, enclos) : 
  Error in ScaleR.  Check the output for more information.
Calls: source -> withVisible -> eval -> eval -> .Call
Execution halted

Ошибка появляется, когда специальные символы включены в результаты запроса ввода в столбце типа varchar, но я не могу использовать типичные трюки R для перекодирования символьных данных во время создания фрейма данных, потому что преобразование @input_data_1 результат запроса к InputDataSet Кадр данных происходит вне контроля процедуры.

1 ответ

Решение

Преобразуйте строковые данные в Unicode, прежде чем они будут переданы в R. Вы можете сделать это, приведя varchar столбцы как nvarchar во входном запросе, чтобы соответствовать ожидаемой кодировке для ввода в преобразование фрейма данных.

SELECT CAST(ColA AS nvarchar(255)) FROM TableA
Другие вопросы по тегам