Как я могу увидеть необработанный запрос, сгенерированный 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) и продолжить оттуда.

Другие вопросы по тегам