當我從R連接到使用RODBC的GreenPlum PostgreSQL數據庫時,我遇到了一個我從未得到過的新錯誤。我已經使用EMACS/ESS和RStudio得到了錯誤,並且RODBC調用按照過去的方式工作。PostgreSQL的rodbc字符編碼錯誤
library(RODBC)
gp <- odbcConnect("greenplum", believeNRows = FALSE)
data <- sqlQuery(gp, "select * from mytable")
> data
[1] "22P05 7 ERROR: character 0xc280 of encoding \"UTF8\" has no equivalent in "WIN1252\";\nError while executing the query"
[2] "[RODBC] ERROR: Could not SQLExecDirect 'select * from mytable'"
編輯: 只是試圖查詢另一個表,並沒有得到結果。所以我猜這不是RODBC問題,而是PostgreSQL表格編碼問題。
R version 2.13.0 (2011-04-13)
Platform: i386-pc-mingw32/i386 (32-bit)
locale:
[1] LC_COLLATE=English_United States.1252
[2] LC_CTYPE=English_United States.1252
[3] LC_MONETARY=English_United States.1252
[4] LC_NUMERIC=C
[5] LC_TIME=English_United States.1252
attached base packages:
[1] stats graphics grDevices utils datasets methods base
other attached packages:
[1] RODBC_1.3-2
>
是否在正常的R對話工作嗎? 'sessionInfo()'的輸出在這種情況下可能會有所幫助。它看起來像一些東西已經改變,使一個或兩個系統語言環境/編碼已經改變。 (順便說一句,sn't,在參數名稱'believeNRows'一個錯字在'odbcConnect()'調用?) –
@Gavin沒有不正常R對話的工作 - 只是嘗試。我剛剛添加了sessionInfo()的輸出,並修正了錯字。 – wahalulu