Я пытаюсь запустить SQL для базы данных Oracle 12C, используя ROracle в RStudio, и мне нужно использовать переменную даты.
Если я запускаю это: -
Sys.setenv(ORA_SDTZ = "GMT")
Sys.setenv(TZ = "GMT")
strdate <- Sys.Date() - 20
dat <- dbGetQuery(conn
,"SELECT add_months(:1,-5) from Dual"
,data = data.frame(strdate) )
Я получаю ожидаемые результаты, т.е. за 20 дней до сегодняшнего дня
Однако, если я запущу это: -
Sys.setenv(ORA_SDTZ = "GMT")
Sys.setenv(TZ = "GMT")
strdate <- Sys.Date() - 20
dat <- dbGetQuery(conn
,"SELECT add_months(:1,-5)
,FLOOR(MONTHS_BETWEEN(sysdate, :1) ) from Dual"
,data = data.frame(strdate) )
Я получаю следующую ошибку: -
Error in .oci.GetQuery(conn, statement, data = data, prefetch =
prefetch, : bind data does not match bind specification
Я тоже пробовал: -
dat <- dbGetQuery(conn, "SELECT add_months( TO_DATE (TO_CHAR (:1, 'DD/MM/YYYY'), 'DD/MM/YYYY'),-5)
,FLOOR(MONTHS_BETWEEN(sysdate, TO_DATE (TO_CHAR (:1, 'DD/MM/YYYY'), 'DD/MM/YYYY')) ) from Dual", data = data.frame(strdate) )
но это тоже не сработало.
Любая помощь приветствуется.