我在一台没有管理权限的机器上工作。我使用sql developer连接到一个内部数据库。我也想通过R连接。
有什么办法可以做到这一点,没有管理员权限?有些解决方案需要我设置一个系统DNS,但我做不到。其他要求我安装jvm.dll
我的环境:Windows7,sqldeveloper,连接方式是通过TNS文件。
通过R连接到SQL Developer比我遇到的其他数据库要困难得多。重要的是,您的机器上安装了jdbc6.jar,并且您知道它的安装位置的文件路径。安装jar文件不需要管理员权限。您可以从Oracle的网站安装jar文件。
我使用RJDBC
包进行连接,如下所示:
library(RJDBC)
jdbcDriver <- JDBC("oracle.jdbc.OracleDriver", classPath = "file path to where ojdbc6.jar is installed on your computer")
jdbcConnection <- dbConnect(jdbcDriver, "jdbc:oracle:thin:@YOUR_SERVER","YOUR_USERNAME","YOUR_PASSWORD")
然后,您可以使用多个命令测试连接;我通常使用:
dbListTables(jdbcConnection)
我的另一个最爱是在使用数据库时使用类似dplyr的函数dbplyr
:
library(dbplyr)
tbl(jdbcConnection, "SAMPLE_TABLE_NAME")
结果输出将是来自tibble形式的查询表的数据。
您可以在R会话中设置环境变量。
Sys.setenv(OCI_LIB64="/Path/to/instantclient",OCI_INC="/Path/to/instantclient/sdk/include")
您可以将其放在主目录中的文件.Rprofile
中,每次开始新会话时,RStudio都会运行它。一旦您在.Rprofile
中有了这个,您就应该能够安装ROracle
了。