Кириллические символы допускают ошибку в SQL Server 2017 с R - PullRequest
0 голосов
/ 01 мая 2018

Я использую машинное обучение SQL Server и службы R (в базе данных) и пытаюсь сделать запрос из сценария для получения столбца [Номенклатура ЕКТУ Подгруппа4]:

 EXEC sp_execute_external_script
   @language = N'R',
   @script= N'
    library("magrittr")
    library("RevoScaleR")

    sqlQuery <- "SELECT TOP(15) [Номенклатура ЕКТУ Подгруппа4] FROM dbo.data"
    print(sqlQuery)
    # Load extra data from local SQL Server 
    conStr2 <- "Driver={ODBC Driver 17 for SQL Server};Server=localhost;Database=Transactions;UID=*****;PWD=*****;"
    ds <- RxSqlServerData(sqlQuery=sqlQuery, connectionString=conStr2)

    rxImport(inData = ds) -> OutputDataSet

   '
   , @input_data_1 = N'SELECT * FROM [CarsTech].[dbo].[vehicles]'
   , @input_data_1_name = N'Cars'
   WITH RESULT SETS (( [Value] numeric not null, [Name] varchar(15) not null, [Trans] varchar(25) not null));

В результате я получил ошибки после применения rxImport:

[Microsoft][ODBC Driver 17 for SQL Server][SQL Server]Íåäîïóñòèìîå èìÿ ñòîëáöà "ÐоменклаÑÑÑа ÐÐТУ ÐодгÑÑппа4".
[Microsoft][ODBC Driver 17 for SQL Server][SQL Server]Íå óäàëîñü âûïîëíèòü ïîäãîòîâêó èíñòðóêöèé.

Что-то не так с символами кириллицы при прохождении [Номенклатура ЕКТУ Подгруппа4]. Я уже пытался использовать UTF-8, cp1251 и так далее. Не помогло

1 Ответ

0 голосов
/ 01 мая 2018

Вы можете заключить символы кириллицы в Unicode с помощью N'':

EXEC sp_execute_external_script
 @language = N'R',
 @script= N'
 library("magrittr")
 library("RevoScaleR")

 sqlQuery <- "SELECT TOP(15) N''[Номенклатура ЕКТУ Подгруппа4]'' FROM dbo.data"
 print(sqlQuery)
 # Load extra data from local SQL Server 
 conStr2 <- "Driver={ODBC Driver 17 for SQL Server};Server=localhost;Database=Transactions;UID=*****;PWD=*****;"
 ds <- RxSqlServerData(sqlQuery=sqlQuery, connectionString=conStr2)

 rxImport(inData = ds) -> OutputDataSet

'
, @input_data_1 = N'SELECT * FROM [CarsTech].[dbo].[vehicles]'
, @input_data_1_name = N'Cars'
WITH RESULT SETS (( [Value] numeric not null, [Name] varchar(15) not null, [Trans] varchar(25) not null));
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...