Обработка типов «уникального идентификатора» при записи фрейма данных из R в SQL Server - PullRequest
0 голосов
/ 11 июля 2019

У меня есть кадр данных из 260 000+ строк, которые я пытаюсь записать из R в SQL Server 2018. Один из моих столбцов содержит GUID, и я пытаюсь установить тип данных как «uniqueidentifier» в SSMS, но я могу только нажать это как varchar. Все остальные мои столбцы проходят через мой указанный тип данных.

Есть ли способ написать 'uniqueidentifier' с помощью R?

Я использую функцию dbWriteTable из пакета DBI, а также odbc.

Я попытался установить тип данных с помощью field.types;

library('odbc')
library('DBI')

dbWriteTable(conn, Id(schema = schema, table = "SAP_Event"),
    Event, field.types = c(GUID = "uniqueidentifier",
       `Work Order Event` = "varchar(max)",
            `Start Date` = "int",
            `End Date` = "int",
            `Campaign Tier` = "varchar(max)",
            `Multiple Group Event` = "varchar(max)",
            `Default Revision` = "varchar(max)",
            `WO Event Description` = "varchar(max)",
            DateTimeAdded = "datetime",
            DateTimeEnd = "datetime"),  append = TRUE, row.names = FALSE)

, который возвращает,

Ошибка в result_insert_dataframe (rs @ ptr, значения): nanodbc / nanodbc.cpp: 1791: 07006: [Microsoft] [Драйвер ODBC SQL Server] Нарушение атрибута ограниченного типа данных

Я попытался опустить аргумент field.types, который выдает то же сообщение об ошибке. Пример,

dbWriteTable(conn, Id(schema = schema, table = "SAP_Event"), Event, append = TRUE, row.names = FALSE)

Setting overwrite = TRUE will write to SSMS but my GUID column becomes varchar.
dbWriteTable(conn, Id(schema = schema, table = "SAP_Event"), Event, overwrite = TRUE, row.names = FALSE)

Заранее спасибо.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...