Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/xslt/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
ROracle连接并拉出utf8字符_R_Oracle_Encoding_Utf 8_Roracle - Fatal编程技术网

ROracle连接并拉出utf8字符

ROracle连接并拉出utf8字符,r,oracle,encoding,utf-8,roracle,R,Oracle,Encoding,Utf 8,Roracle,我正在使用ROracle从R连接到Oracle数据库。问题是,对于每个特殊的utf-8字符,它都会返回一个问号。一些中文值返回一个实心问号字符串。我相信这是相关的,因为我在这个网站(或其他网站)上没有找到任何其他问题来回答ROracle软件包的问题。 一些最有希望的问题包括MySQL的答案:但我无法让ROracle工作。在我使用RODBC之前,这个站点还提供了一些有用的信息,可以轻松地配置uft-8编码 下面是一些示例代码。。。很抱歉,除非您有一个带有utf-8字符的Oracle数据库,否则可能

我正在使用ROracle从R连接到Oracle数据库。问题是,对于每个特殊的utf-8字符,它都会返回一个问号。一些中文值返回一个实心问号字符串。我相信这是相关的,因为我在这个网站(或其他网站)上没有找到任何其他问题来回答ROracle软件包的问题。 一些最有希望的问题包括MySQL的答案:但我无法让ROracle工作。在我使用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)

好的,几周后我找到了自己的答案。我希望它对其他人有价值

我的问题主要由Oracle如何存储数据来回答。如果希望保留UTF-8特性,则需要表中的列是NVARCHAR,而不仅仅是varchar。在这一点上,常规的数据提取和编码将如预期的那样在R中工作。我在错误的地方寻找错误

我还想提到一个关于如何使用utf-8将utf-8数据从R写入Oracle的问题

在编写文件时,我有一些文件不会以以下方式转换为UTF-8。所以我分了太多的步骤,分两步将它们写到oracle表中。结果非常有效

Encoding(my.data1$Project.Name) <- "UTF-8"

my.data1.1 <- my.data1[Encoding(my.data1$Project.Name) == "UTF-8", ]
my.data1.2 <- my.data1[Encoding(my.data1$Project.Name) != "UTF-8", ]
attr(my.data1.1$Project.Name, "ora.encoding") <- "UTF-8"

编码(my.data1$Project.Name)非常感谢!你的回答真的帮助了我们!