R 数据帧到 Oracle SQL table: 无法分配内存

R data frame to Oracle SQL table: Could not allocate memory

我想使用以下代码将 R 中的数据框插入到我的 Oracle 数据库中的现有 table 中:

sqlSave(connection, df, tablename = "oracle_table", append = TRUE)

我收到错误 could not allocate memory。 我尝试只插入一行,但错误仍然出现。 Oracle 目标 table 中某些字段的类型是 memo

如何在 oracle 中插入我的 df table?

R数据框的结构:

$a: num
$b: chr

Oracle 数据库中目标 table 的结构:

a: number(10,0)
b: CLOB

示例数据集:

b <- c("Lorem ipsum dolor sit amet, consetetur sadipscing elitr, sed diam nonumy eirmod tempor invidunt ut labore et dolore magna aliquyam erat, sed diam voluptua Lorem ipsum dolor sit amet, consetetur sadipscing elitr, sed diam nonumy eirmod tempor invidunt ut labore et dolore magna aliquyam erat, sed diam voluptua Lorem ipsum dolor sit amet, consetetur sadipscing elitr, sed diam nonumy eirmod tempor invidunt ut labore et dolore magna aliquyam erat, sed diam voluptua Lorem ipsum dolor sit amet, consetetur sadipscing elitr, sed diam nonumy eirmod tempor invidunt ut labore et dolore magna aliquyam erat, sed diam voluptua Lorem ipsum dolor sit amet, consetetur sadipscing elitr, sed diam nonumy eirmod tempor invidunt ut labore et dolore magna aliquyam erat, sed diam voluptua Lorem ipsum dolor sit amet, consetetur sadipscing elitr, sed diam nonumy eirmod tempor invidunt ut labore et dolore magna aliquyam erat, sed diam voluptua","Lorem ipsum dolor sit amet, consetetur sadipscing elitr, sed diam nonumy eirmod tempor invidunt ut labore et dolore magna aliquyam erat, sed diam voluptua Lorem ipsum dolor sit amet, consetetur sadipscing elitr, sed diam nonumy eirmod tempor invidunt ut labore et dolore magna aliquyam erat, sed diam voluptua Lorem ipsum dolor sit amet, consetetur sadipscing elitr, sed diam nonumy eirmod tempor invidunt ut labore et dolore magna aliquyam erat, sed diam voluptua At vero eos et accusam et justo duo dolores et ea rebum"," Stet clita kasd gubergren, no sea takimata sanctus est Lorem ipsum dolor sit amet"," Lorem ipsum dolor sit amet, consetetur sadipscing elitr, sed diam nonumy eirmod tempor invidunt ut labore et dolore magna aliquyam erat, sed diam voluptua"," At vero eos et accusam et justo duo dolores et ea rebum Lorem ipsum dolor sit amet, consetetur sadipscing elitr, sed diam nonumy eirmod tempor invidunt ut labore et dolore magna aliquyam erat, sed diam voluptua Lorem ipsum dolor sit amet, consetetur sadipscing elitr, sed diam nonumy eirmod tempor invidunt ut labore et dolore magna aliquyam erat, sed diam voluptua Lorem ipsum dolor sit amet, consetetur sadipscing elitr, sed diam nonumy eirmod tempor invidunt ut labore et dolore magna aliquyam erat, sed diam voluptua"," Stet clita kasd gubergren, no sea takimata sanctus est Lorem ipsum dolor sit amet"," Lorem ipsum dolor sit amet, consetetur sadipscing elitr, sed diam nonumy eirmod tempor invidunt ut labore et dolore magna aliquyam erat, sed diam voluptua", " Stet clita kasd gubergren, no sea takimata sanctus est Lorem ipsum dolor sit amet Lorem ipsum dolor sit amet, consetetur sadipscing elitr, sed diam nonumy eirmod tempor invidunt ut labore et dolore magna aliquyam erat, sed diam voluptua Lorem ipsum dolor sit amet, consetetur sadipscing elitr, sed diam nonumy eirmod tempor invidunt ut labore et dolore magna aliquyam erat, sed diam voluptua","Duis autem vel eum iriure dolor in hendrerit in vulputate velit esse molestie consequat, vel illum dolore eu feugiat nulla facilisis at vero eros et accumsan et iusto odio dignissim qui blandit praesent luptatum zzril delenit augue duis dolore te feugait nulla facilisi"," Lorem ipsum dolor sit amet, consectetuer adipiscing elit, sed diam nonummy nibh euismod tincidunt ut laoreet dolore magna aliquam erat volutpat")
df <- data.frame(A = seq(1:length(b)), B = b, C = tolower(gsub("[[:space:]]|[[:punct:]]", "", b)))
sqlSave(connection, df, tablename = "ORACLE_TABLE", append = TRUE)

在我的 Oracle 数据库中将整个 df 保存为 table 而不首先创建 Oracle table 会更容易吗?我怎么能在 R 中做到这一点?

我刚刚发现如何使用 ROracle 将 R 中的数据框放入 Oracle 中的数据库中:

require(ROracle)
Con=dbConnect(dbDriver("Oracle"),"IP/SID",username="xxx",password="xxx")
dbWriteTable(Con, "ORACLE_TABLE", df, row.names = TRUE, overwrite = TRUE)

这是一个折衷的解决方案,但至少我现在 "inserted" 我的 df 进入了数据库。