2015-12-09 3 views
-1

Я использую R для чтения данных из базы данных Hana. Некоторые имена таблиц включают обратную косую черту, которая заставляет меня использовать кавычки. Я не могу прочитать эти таблицы, используя R. Позвольте мне показать вам пример ...Данные запроса из базы данных Hana с R, касающиеся котировок

Этот SQL работает в Hana:

SELECT COUNT(*) FROM P3O."/BBB/BBB"; 

Когда я пытаюсь использовать тот же код для чтения данных с R из базы данных Hana я получаю эти ошибки:

library("RODBC") 
channel <- odbcConnect("xxx",uid="xxx",pwd="xxx") 
query <- 
paste("'","SELECT COUNT(*) FROM P30.", "\"/BBB/BBB\"","'",sep="") 
RAW_dataHana <- sqlQuery(channel, query) 
close(channel) 

я получаю следующие ошибки:

Syntax error or access violation;257 sql syntax error: incorrect syntax near \"SELECT COUNT() FROM ... [2] "[RODBC] ERROR: Could not SQLExecDirect ''SELECT COUNT() FROM P30.\"/BBB/BBB\"''"

Я думаю, что это что-то делать с цитаты, но когда Я проверить код с этим, я думаю, что я получаю правильный запрос:

x = paste("'","SELECT COUNT(*) FROM P30.", "\"/BBB/BBB\"", "'",sep="") 
cat(x) 
> cat(x) 
'SELECT COUNT(*) FROM P30."/BBB/BBB"' 

ответ

1

Просто получил теперь проверить мой тестовый RODBC код ... Самый простой способ справиться с цитирование вложить строку запроса в единый цитаты, например:

sales_fact<-sqlQuery (ch, 'SELECT TOP 200 "ORDERID", "VAR_INDICATOR", 
             sum("ORDER_CNT") AS "ORDER_CNT", 
             sum("VARIANCE") AS "VARIANCE", 
             sum("VARIANCE_PCT") AS "VARIANCE_PCT", 
             sum("BUDGET") AS "BUDGET", 
             sum("ACTUAL") AS "ACTUAL" 
          FROM "_SYS_BIC"."test/ODERS_CV" 
          GROUP BY "ORDERID", "VAR_INDICATOR"') 

Это также работает с пастой():

queryText <- 'SELECT TOP 200 "ORDERID", "VAR_INDICATOR", 
             sum("ORDER_CNT") AS "ORDER_CNT",...' 

queryText <- paste(sep = '', queryText, ' "_SYS_BIC"."test/ODERS_CV" 
          GROUP BY "ORDERID", "VAR_INDICATOR"')