Как я могу увидеть необработанный запрос, сгенерированный DBI::dbWriteTable?
Мне интересно, если есть способ получить запрос SQL, который dbWriteTable
отправляет в СУБД. Например, для следующего примера. Есть ли способ получить запрос?
library(DBI)
con <- dbConnect(RSQLite::SQLite(), ":memory:")
dbWriteTable(con, "mtcars", mtcars[1:10, ])
dbDisconnect(con)
РЕДАКТИРОВАТЬ: 2016-11-11
Как пользователь Postgres, меня больше всего интересуют команды, отправляемые с использованием RPostegreSQL
, Следуя @krlmlr, я понял, что есть функция postgresqlCopyInDataframe
которая сама вызывает функцию C RS_PostgreSQL_CopyInDataframe
, Так что я зашел в тупик, так как Си выше моих навыков. Любые идеи приветствуются...
1 ответ
Версия для разработки RSQLite
, который скоро поразит CRAN, использует DBI::sqlCreateTable()
, Эта функция возвращает SQL, который создает конкретную таблицу:
con <- dbConnect(RSQLite::SQLite(), ":memory:")
sqlCreateTable(con, "mtcars", mtcars[1:10, ])
dbDisconnect(con)
Для других драйверов вы можете посмотреть определение метода в исходном коде драйвера, например, через showMethods("dbWriteTable", includeDefs = TRUE)
и продолжить оттуда.