RODBC对Oracle数据库和特殊字符的影响

时间:2015-06-10 15:44:40

标签: r oracle odbc rodbc

很抱歉,如果我问一个已经问过的问题,我在这个论坛中有效地发现了一些类似的问题(例如Special characters and RODBC),但没有答案可以帮助我......

所以,我的问题是,当我通过R中的RODBOC对Oracle数据库进行查询时,我无法正确查看返回的特殊字符。 R自动将(特殊情况下)特殊字符转换为普通字符

这是我做的一个简单测试:

> Cnx <- odbcConnect(dsn="myDSN", uid="myLogin",pwd="myPassword")
> sqlQuery(Cnx, paste("SELECT 'eéèêëÄÊÍÕØ' col FROM DUAL"))
         COL
1 eeeeeAEI??

我在Win7 x64下,&#34; myDSN&#34;是一个ODBC连接,它使用OraClient12home1中的&#34; Oracle&#34; (64位)。我用&#34; R x64 3.2.0&#34;与RODBC包版本1.3-11。 数据库在linux服务器上,是NLS_CHARACTERSET是&#34; WE8MSWIN1252&#34;

我做了其他测试以便更好地理解:

  • 与使用OraClient12home1_32bit&#34;中的&#34; Oracle的ODBC连接进行相同的测试与&#34; R i386 3.2.0&#34; =&GT; 同样的问题
  • 在本地SQL Server上使用ODBC连接进行相同的测试=&gt; 没问题,我可以看到特色字符
  • MS Excel中使用相同ODBC连接的相同查询=&gt; 也没问题

我尝试使用&#34; UTF-8&#34;来使用DBMSencoding参数。我得到了同样的问题,与其他人一样,我得到了不同的错误......

这是我的sessionInfo()

R version 3.2.0 (2015-04-16)
Platform: x86_64-w64-mingw32/x64 (64-bit)
Running under: Windows 7 x64 (build 7601) Service Pack 1

locale:
[1] LC_COLLATE=French_France.1252  LC_CTYPE=French_France.1252 LC_MONETARY=French_France.1252
[4] LC_NUMERIC=C                   LC_TIME=French_France.1252    

attached base packages:
[1] stats     graphics  grDevices utils     datasets  methods   base     

other attached packages:
[1] RODBC_1.3-11

loaded via a namespace (and not attached):
[1] tools_3.2.0

感谢您的帮助

0 个答案:

没有答案