[SQL] SQL 문에서 사용하는 R 스크립트 문자열 변수 전달
SQLSQL 문에서 사용하는 R 스크립트 문자열 변수 전달
나는 예를 들어 SQL 문을 사용 R 스크립트 문자열 변수를 사용하려고 :
x="PASS"
SQL<- paste("select ID, NAME, STATUS from STUDENT where STATUS =(",x,")",sep="")
Q1 <- dbGetQuery(con, SQL)
이 오류는 말합니다 :
그 말 상태 = ( "X") "= PASS와 추가로이해야 'PASS'인용 '
나는 다음으로 ''하지만 성공을 두지하려고 노력했다.
SQL <- paste("select ID, NAME, STATUS from STUDENT where STATUS ='(",x,")' ",sep="")
Q1 <- dbGetQuery(con, SQL)
나는 번호를 테스트하고 그것은 잘 작동하지만 난이 문자열을 사용하면 값이 따옴표에 있어야하기 때문에 '는'작동하지 않습니다.
해결법
-
==============================
1.사용 대신 sprintf를 :
사용 대신 sprintf를 :
x <- "PASS" sprintf("select ID, NAME, STATUS from STUDENT where STATUS = '%s'", x) ## [1] "select ID, NAME, STATUS from STUDENT where STATUS = 'PASS'"
-
==============================
2.이 시도:
이 시도:
library(gsubfn) x <- "PASS" fn$dbGetQuery(con, "select ID, NAME, STATUS from STUDENT where STATUS = '$x' ")
이것은 또한 작동합니다 :
s <- fn$identity("select ID, NAME, STATUS from STUDENT where STATUS = '$x' ") dbGetQuery(con, s)
-
==============================
3.Windows 용 편집
Windows 용 편집
시험
x = "PASS" SQL<- paste0("select ID, NAME, STATUS from STUDENT where STATUS = ", shQuote(x, 'sh')) Q1 <- dbGetQuery(con, SQL)
더 일반적으로 shQuote 같은 구성 일 때 유용합니다 :
paste0("SELECT * FROM urtable where urvar IN(", paste0(shQuote(LETTERS, 'sh'), collapse = ','), ")") [1] "SELECT * FROM urtable where urvar IN('A','B','C','D','E','F','G','H','I','J','K','L','M','N','O','P','Q','R','S','T','U','V','W','X','Y','Z')" #
당신은 단순한 문자열이있는 경우. 더 복잡한 문자 문자열의 다른 어쩌면 필요한 접근한다. 예를 들어 PostgreSQL의 당신은 문자를 탈출 달러 - 인용 문자열 상수를 사용할 수 있습니다.
당신은 당신이 사용하거나 R 패키지를 연관되는 SQL의 어떤 변형 언급 해달라고. 일부 R 패키지는 RMySQL에서 RPostgreSQL에서 postgresqlEscapeStrings 또는 dbEscapeStrings 같은 도우미 기능을 가질 수있다.
from https://stackoverflow.com/questions/17435086/pass-string-variable-in-r-script-to-use-it-in-sql-statement by cc-by-sa and MIT license
'SQL' 카테고리의 다른 글
[SQL] MySQL의 빈 IN 절 매개 변수 목록 (0) | 2020.05.28 |
---|---|
[SQL] 어떻게 두 번째로 높은 급여와 직원을 찾는 방법은? (0) | 2020.05.28 |
[SQL] 는 SQL 트랜잭션의 동시성 처리 (0) | 2020.05.28 |
[SQL] 다중 열 외래 키 제약 조건 (0) | 2020.05.28 |
[SQL] Extbase은 - 쿼리에서 SQL을 생성 얻을 (0) | 2020.05.28 |