У меня проблемы с импортом норвежских символов, таких как æ, ø и å, из базы данных Oracle с использованием ROracle. У меня были подобные проблемы с RODBC раньше. У меня нет проблем при импорте из файлов, таких как csv и xlsx, я уверен, что проблема заключается в настройке кодировки при импорте с ROracle, но документация не говорит мне, как это сделать.
В различных ответах пишется функция для преобразования в UTF-8 после импорта, но это не решение, которое мне подходит. Я хочу делать запросы к оракулу БД, используя пакет dplyr, и мне нужно иметь возможность запрашивать, используя буквы типа æøå
.
Вот моя строка подключения и sql-запрос, который я использую в качестве теста:
library(ROracle)
drv <- dbDriver("Oracle", unicode_as_utf8 = TRUE, ora.attributes = TRUE)
# Create the connection string
host <- "xx.xxx.xx.x"
port <- xxxx
sid <- "xxxxxx"
connect.string <- paste(
"(DESCRIPTION=",
"(ADDRESS=(PROTOCOL=tcp)(HOST=", host, ")(PORT=", port, "))",
"(CONNECT_DATA=(SID=", sid, ")))", sep = "")
con <- dbConnect(drv, username = "",
password = "",dbname=connect.string)
test <- dbGetQuery(con, "SELECT DECODE FROM T_CODE where key_id=17")
Это дает мне такие результаты: R?dgivningskontor
Вот информация о моей сессии:
R version 3.5.0 (2018-04-23)
Platform: x86_64-apple-darwin15.6.0 (64-bit)
Running under: macOS High Sierra 10.13.4
Matrix products: default
BLAS: /System/Library/Frameworks/Accelerate.framework/Versions/A/Frameworks/vecLib.framework/Versions/A/libBLAS.dylib
LAPACK: /Library/Frameworks/R.framework/Versions/3.5/Resources/lib/libRlapack.dylib
locale:
[1] en_US.UTF-8/en_US.UTF-8/en_US.UTF-8/C/en_US.UTF-8/en_US.UTF-8
attached base packages:
[1] stats graphics grDevices utils datasets methods base
other attached packages:
[1] ROracle_1.3-1 DBI_1.0.0
loaded via a namespace (and not attached):
[1] compiler_3.5.0 tools_3.5.0 yaml_2.1.19