2014-01-23 5 views
1

Я использую пакет RODBC в R для импорта/экспорта фреймов данных из базы данных SQL Server. Хотя в импорте нет проблем. Я не знаю, как экспортировать содержимое фрейма данных в существующую таблицу SQL.Экспорт данных на SQL-сервер с использованием пакета RODBC

Я пытаюсь использовать функцию sqlQuery(), доступную в пакете, но я не уверен, как вставить несколько записей в таблицу.

Пример того, как вставлять строки, будет полезен Я убедился, что столбцы моей таблицы и фрейма данных одинаковы.

ответ

1

Это мой код при использовании sqlSave(). Я использую SQL Server 2008. Conn является соединение, которое я создал с помощью odbcConnect():

#creating data to be saved in SQL Table 
data_to_save<-cbind(scenario_1,scenario_2,scenario_3,scenario_4,store_num,future_date,Province,index) 

#use sqlSave() rather than sqlQuery() for saving data into SQL Server 
sqlSave(conn,data.frame(data_to_save),"CC_Forecast",safer=FALSE,append=TRUE) 
+0

Thanks Yan. Я знаю эту функцию, но она выдает ошибку в случае достаточно большого кадра данных. 'sqlQuery()' является более общей функцией, которая вставляет фрейм данных по строкам, также 'sqlSave()' не работает, если ваши столбцы фрейма данных являются поднаборами вашей таблицы –

1
dbWriteTable(conn, "RESULTS", results2000, append = T) 

использование DBI пакет

0

Я хотел бы добавить на ответ Янь.

Прежде чем использовать функцию sqlSave(), убедитесь, что вы изменили базу данных по умолчанию в нужную базу данных, где находится ваша таблица. Особенно, если вы хотите писать в существующую таблицу!

See here: как настроить подключение ODBC и как изменить базу данных по умолчанию.

После этого, вы можете использовать их, чтобы сбросить данные в SQL:

specificDB= odbcConnect(dsn ='name you set up in ODBC',uid = '***', pwd = '****') 

sqlSave(specificDB, output_to_sql, tablename = 'a_table_in_specificDB', rownames = F,append = T) 

close(specificDB) 

Это медленно. потерпи.

3

Использовать sqlSave с добавлением свойства. См. Мой код ниже:

sqlSave(uploaddbconnection, outputframe, tablename = 
    "your_TableName",rownames=FALSE, append = TRUE) 
Смежные вопросы