我试图在RStudio中使用ROracle在Oracle 12C数据库上运行一些SQL,我需要使用日期变量。
如果我运行此命令:-
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) )
但这也不起作用。
任何帮助表示赞赏。