2013-04-10 3 views
0

다음 함수를 사용하여 테이블에서 값을 선택합니다. 테이블 이름이 해당 함수에 대한 매개 변수로 제공됩니다. 테이블이 존재하지 않으면 오류가 생성되어 실행이 중지됩니다. 테이블이 발견되지 않으면 무언가를 할 수 있습니다. R에서 가능합니까? try-catch 예외와 같은 것?데이터베이스 조작 예외 처리 R

library('RSQLite') 
getData <- function(portfolio){ 
    lite <- dbDriver("SQLite", max.con = 25) 
    db <- dbConnect(lite, dbname = "portfolioInfo.db") 
    res <- dbSendQuery(db, paste("SELECT * from ",portfolio," ",sep="")) 
    data <- fetch(res) 
    return (data) 
} 
getData("table1") 

답변

1

이렇게하는 한 가지 방법은 반환되는 데이터의 클래스를 확인하는 것입니다.

RSQLite에 익숙하지 않지만 표가 발견되면 데이터 프레임을 반환하고 그렇지 않을 경우 텍스트 오류를 ​​반환합니다.

checkQueryResult<-function(data){ 
    if(class(data)=='data.frame') cat('SQL execution worked!') 
    else cat('Something went wrong, table does not exist?') 
    } 

checkQueryResult(getData("table1")) 

그러나 어쩌면 RSQLite 패키지는 이미 오류 처리 물건을 내장했습니다

그래서 가능성이 오류가 발생하는지 여부를 확인하는 것입니다?