我正在使用 ROracle 从 R 连接到 Oracle 数据库。问题是对于每个特殊的 utf-8 字符,它都会返回一个问号。一些中文值返回一串实心问号。我相信这是相关的,因为我在这个站点(或其他站点)上没有找到任何其他问题来回答这个包 ROracle。一些最有希望的问题包括 MySQL 的答案:Fetching UTF-8 text from MySQL in R 返回“????” 但我无法为 ROracle 完成这项工作。该站点还提供了一些有用的信息https://docs.oracle.com/cd/E17952_01/mysql-5.5-en/charset-connection.html在我使用 RODBC 并且能够轻松配置 uft-8 编码之前。
这是一些示例代码...很抱歉,除非您有一个带有 utf-8 字符的 Oracle 数据库,否则可能无法复制...出于数据隐私的原因,我还更改了主机号和 sid...
library(ROracle)
drv <- dbDriver("Oracle")
# Create the connection string
host <- "10.00.000.86"
port <- 1521
sid <- "f110"
connect.string <- paste(
"(DESCRIPTION=",
"(ADDRESS=(PROTOCOL=tcp)(HOST=", host, ")(PORT=", port, "))",
"(CONNECT_DATA=(SID=", sid, ")))", sep = "")
con <- dbConnect(drv, username = "XXXXXXXXX",
password = "xxxxxxxxx",dbname=connect.string)
my.table <- dbReadTable(con, "DASH_D_PROJECT_INFO")
my.table[40, 1:3]
PROJECT_ID DATE_INPUT PROJECT_NAME
211625 2012-07-01 ??????, ?????????????????? ????? ??????, 1869?1917 [????? 3]
任何帮助表示赞赏。我已经阅读了 ROracle 包的整个文档,它似乎有一个用于编写 utf-8 字符的解决方案,但没有用于阅读它们。