如何在R Studio中创建Oracle数据库并在R Markdown中使用Oracle SQL查询?
在R Studio中连接Oracle数据库并导入数据
注意:Oracle数据库一般是预先在服务器端创建完成的,R主要负责连接已有的Oracle实例并进行数据操作(创建Oracle数据库需要DBA权限,需通过Oracle官方工具完成)。以下是连接Oracle数据库并导入数据的实操步骤:
1. 前置准备
- 安装对应版本的Oracle ODBC驱动(匹配你的Oracle数据库版本和系统位数)
- 可提前通过系统的ODBC数据源管理器配置Oracle数据源,或直接在代码中指定驱动信息
2. 加载所需R包
library(DBI) library(odbc) library(tidyverse)
3. 连接Oracle数据库
方式一:使用预配置的ODBC数据源名称(DSN)
con <- dbConnect( drv = odbc::odbc(), dsn = "你的Oracle数据源名称", # 提前在ODBC管理器中配置的DSN UID = "你的Oracle用户名", PWD = "你的Oracle密码" )
方式二:直接指定驱动信息(无需预配置DSN)
con <- dbConnect( drv = odbc::odbc(), Driver = "Oracle in OraClient19Home1", # 替换为你的Oracle驱动名称 DBQ = "//主机IP:端口号/服务名", # 示例://192.168.1.100:1521/ORCL UID = "你的Oracle用户名", PWD = "你的Oracle密码" )
4. 将数据写入Oracle数据库
Oracle表名默认大写,若需保留原大小写需给表名加双引号:
# 写入actv_ts表 dbWriteTable( conn = con, name = "ACTV_TS", # 若要保留小写表名:name = '"actv_ts"' value = actv_ts, overwrite = TRUE, # 表已存在时覆盖,可选参数 append = FALSE # 是否追加数据,可选参数 ) # 写入SP_CURRENT表 dbWriteTable( conn = con, name = "SP_CURRENT", value = SP_CURRENT, overwrite = TRUE )
5. 在R Markdown中执行Oracle SQL查询
方式一:使用sql代码块直接查询
```{sql, connection=con} SELECT * FROM ACTV_TS FETCH FIRST 10 ROWS ONLY; SELECT COUNT(*) FROM SP_CURRENT;
### 方式二:通过R代码执行查询 ```r query_result <- dbGetQuery(con, "SELECT * FROM ACTV_TS WHERE 条件") head(query_result)
6. 关闭数据库连接
dbDisconnect(con)
内容的提问来源于stack exchange,提问作者Nick Brown
相关产品推荐
相关产品推荐

