[英]R Pass required variable from ODBC/HANA connection to sql statement
我有一張桌子,我想用我常用的方法打電話
sql <- 'SELECT TOP 10 *
FROM "_SYS_BIC"."data-path.self-service.DOIP/table_name"'
df <- dbGetQuery(jdbcConnection, sql)
並收到錯誤
Error in .verify.JDBC.result(r, "Unable to retrieve JDBC result set for ", :
Unable to retrieve JDBC result set for SELECT TOP 10 *
FROM "_SYS_BIC"."data-path.self-service.DOIP/table_name" (SAP DBTech JDBC: [2048]: column store error: search table error: [34023] Instantiation of calculation model failed;exception 306106: Undefined variable: $$IP_ExtractionWeekFrom$$. Variable is marked as required but not set in the query)
我一直在嘗試使用 where 子句將 IP_ExtractionWeekFrom 插入 sql 語句,但沒有成功
param1 <- 201943
sql <- 'SELECT TOP 10 *
FROM "_SYS_BIC"."ccf-edw.self-service.DOIP/R_CA_B_DemandPlan" where
"$$IP_ExtractionWeek$$" = ?'
SpringVisit <- dbGetQuery(jdbcConnection, sql, param1)
我已經嘗試過用“$$”和沒有“$$”包圍的術語,無論有沒有“$$”都用引號括起來,而不是。 通常會遇到“無效的列名”錯誤。
這應該用 where 子句以外的東西來調用嗎?
考慮使用 R 中的參數集成來維護您的工作 Tableau 查詢,並正確處理標識符的雙引號和文字的單引號。
此外,舊的('PLACEHOLDER'= ('<varname>', <varvalue>))
語法不支持參數化。
相反,如如何從 HANA 占位符中逃脫 sql 注入中所述,請使用PLACEHOLDER."<varname>" =>?
句法。
param1 <- 201943
sql <- "SELECT TOP 10 *
FROM \"_SYS_BIC\".\"ccf-edw.self-service.DOIP/R_CA_B_DemandPlan\"(
PLACEHOLDER.\"$$IP_ExtractionWeekFrom$$\", ?),
PLACEHOLDER.\"$$IP_ExtractionWeekTo$$\",?)
)\"_SYS_BIC\".\"ccf-edw.self-service.DOIP/R_CA_B_DemandPlan\"
WHERE (1 <> 0)"
SpringVisit <- dbGetQuery(jdbcConnection, sql, param1, param1)
此外,如果您的 JDBC 已經連接到架構_SYS_BIC
,請使用同義限定符::
作為原始查詢以引用 package 和計算視圖:
sql <- "SELECT TOP 10 *
FROM \"ccf-edw.self-service.DOIP::R_CA_B_DemandPlan\"(
PLACEHOLDER.\"$$IP_ExtractionWeekFrom$$\", ?),
PLACEHOLDER.\"$$IP_ExtractionWeekTo$$\", ? )
)\"ccf-edw.self-service.DOIP::R_CA_B_DemandPlan\"
WHERE (1 <> 0)"
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.