在R中使用SQL在HANA中进行查询时如何处理其中包含/的字段名称
How to deal with a field name with / in it when using SQL in R to make queries in HANA
我用下面的代码linkR到HANA,这样就可以用SQLR语言看HANA里面的数据了
ch<-odbcConnect('HANARConnect',uid='***',pwd='******')
sqlQuery(ch, 'SELECT * FROM "SAPB1D"."/BIC/AZ_RT_A212" WHERE DOC_NUM=1046349 AND CALDAY=20101102 ')
以上代码有效。但是,我有一些字段名称中包含特殊字符,例如 /。所以我不能在 WHERE 部分使用这些名称。例如,如果我的代码是:
sqlQuery(ch, paste('select * from "SAPB1D"."/BIC/AZ_RT_A212" ',
'where /BIC/ZR_NETVAL=9.76'))
那么我有以下信息:
[1] "42000 257 [SAP AG][LIBODBCHDB DLL][HDBODBC] Syntax error or access violation;257 sql syntax error: incorrect syntax near \"/\": line 1 col 49 (at pos 49)"
[2] "[RODBC] ERROR: Could not SQLExecDirect 'select * from \"SAPB1D\".\"/BIC/AZ_RT_A212\" where /BIC/ZR_NETVAL=9.76'"
我想我应该对字段名称做些什么 /BIC/ZR_NETVAL。但这是我第一次在 R 中使用 SQL。很抱歉我不能在这里 post 数据示例。
如果字段名称包含特殊字符或并非全部大写,则必须将字段名称用双引号 ("
) 括起来,就像数据库名称一样。
sqlQuery(ch, paste('select * from "SAPB1D"."/BIC/AZ_RT_A212" ',
'where "/BIC/ZR_NETVAL"=9.76'))
我用下面的代码linkR到HANA,这样就可以用SQLR语言看HANA里面的数据了
ch<-odbcConnect('HANARConnect',uid='***',pwd='******')
sqlQuery(ch, 'SELECT * FROM "SAPB1D"."/BIC/AZ_RT_A212" WHERE DOC_NUM=1046349 AND CALDAY=20101102 ')
以上代码有效。但是,我有一些字段名称中包含特殊字符,例如 /。所以我不能在 WHERE 部分使用这些名称。例如,如果我的代码是:
sqlQuery(ch, paste('select * from "SAPB1D"."/BIC/AZ_RT_A212" ',
'where /BIC/ZR_NETVAL=9.76'))
那么我有以下信息:
[1] "42000 257 [SAP AG][LIBODBCHDB DLL][HDBODBC] Syntax error or access violation;257 sql syntax error: incorrect syntax near \"/\": line 1 col 49 (at pos 49)"
[2] "[RODBC] ERROR: Could not SQLExecDirect 'select * from \"SAPB1D\".\"/BIC/AZ_RT_A212\" where /BIC/ZR_NETVAL=9.76'"
我想我应该对字段名称做些什么 /BIC/ZR_NETVAL。但这是我第一次在 R 中使用 SQL。很抱歉我不能在这里 post 数据示例。
如果字段名称包含特殊字符或并非全部大写,则必须将字段名称用双引号 ("
) 括起来,就像数据库名称一样。
sqlQuery(ch, paste('select * from "SAPB1D"."/BIC/AZ_RT_A212" ',
'where "/BIC/ZR_NETVAL"=9.76'))