2016-07-20 15 views
1

Also, "\", zerquetscht meine Seele. Ich arbeite an einer Abfrage für RMySQL, die einige seltsame String-Escapes erfordert und ich kann nicht scheinen, den richtigen Aufruf von Paste zu finden.Backslash-Probleme in R Abfrage Zeichenfolge

query <- 'CALL `storedprocX`(1, 30, "\'xyz-f43\', \'1002\'")' 

Meine bisherigen Versuche der Nähe gewesen, aber ich kann nicht scheinen, die wörtlichen Schrägstriche an der richtigen Stelle zu bekommen.

ids <- c("xyz-f43","1002") 
x <- 1 
y <- 30 

paste0('CALL `storedprocX`(',x,',',y,paste0(" \\'",ids,"\\'",collapse = ","),')') 

Jeder hat Erfahrung damit?

Antwort

1

Ich bin nicht vertraut mit RMySQL aber ist nicht die SQL-Engine kümmert sich um die Flucht?

> esc.ids = paste(sprintf("\\'%s\\'", ids), collapse = ", ") 
> esc.ids = paste0("\"", esc.ids, "\"", collapse = "") 
> my.q = paste0("'CALL `storedprocX`(1, 30, ", esc.ids, ")'", collapse = "") 
> cat(my.q) 
'CALL `storedprocX`(1, 30, "\'xyz-f43\', \'1002\'")' 
> nchar(my.q) 
[1] 52 

Würde SQL nicht die gleiche Katze hier tun?