Передайте файл. sql в DBI :: dbGetQuery с комментариями в качестве первой строки в R / RStudio - PullRequest
0 голосов
/ 27 января 2020

Я пытаюсь передать файл .sql в DBI::dbGetQuery, но у меня возникают проблемы при появлении комментария в первой строке. Например:

run_fine. sql

SELECT * FROM mytable

does_not_work. sql

-- Some comment
SELECT * FROM mytable

Тогда в R:

library(odbc)
library(tidyverse)

con <- dbConnect(odbc(), "my_connection")
dbGetQuery(con, read_file("sql/runs_fine.sql")) # success
dbGetQuery(con, read_file("sql/does_not_work.sql")) # fails

Мотивация: Я хотел бы использовать удобную функцию sql предварительного просмотра из RStudio, но для этого требуется, чтобы первая строка была следующей для любого .sql file:

-- !preview conn=con

... что приводит к сбою dbGetQuery. Я полагаю, что обходной путь - использовать какую-то функцию read.file, которая может пропускать строки или избегать строк комментариев.

ПРИМЕЧАНИЕ. Если строка комментария находится в середине файла .sql, dbGetQuery завершается успешно, как и ожидалось, и избегает соответствующих строк с комментариями.


СУБД CHD Impala, керберизованная. Возвращаемое значение от read_file() начинается с:

"-- !preview conn=con\r\n\r\nSELECT \r\n ..."

...