3
我試圖使用tryCatch
從R查詢我的PostgreSQL數據庫。 基本上查詢工作正常,但我無法設法發現錯誤並對它們做出反應。這裏有一個例子如何在PostgreSQL的tryCatch中使用dbGetQuery?
insert_rows <- function(dframe,con){
out <- list()
for(i in 1:nrow(dframe)){
query <- .... some insert statement
tryCatch({dbGetQuery(con,query)},error=function(e) print("caught"))
}
}
當我創建一個錯誤,例如通過輸入重複的記錄到獨特的PK,我確實看到PostgreSQL的錯誤和警告,但它是從RPostgreSQL
的標準打印輸出。在其他情況下,我使用tryCatch
,它總是以這種方式工作。我用dbGetQuery
很多,但我不能讓他們一起工作。另外,將tryCatch放入列表中的確有很大幫助。
dbSendquery確實可行。不知道爲什麼我從來沒有考慮過它。儘管如此,理解爲什麼'dbGetQuery'在這件事上失敗會很有趣。 –
@MattBannert我一直在爭論這個問題。非R代碼支持RPostgreSQL的編寫方式是固有的(我認爲C/C++,自從我看了它之後已經有一段時間了)。它向控制檯發出錯誤而不會在R中產生錯誤。 – russellpierce