首页 > 解决方案 > 使用 DBI::dbWriteTable() 在 Netezza 中创建临时表

问题描述

我试图弄清楚为什么 DBI 包中的 dbWriteTable() 不允许我在 Netezza 环境中创建临时表。

我使用以下 r 代码的变体:

set.seed(42)  ## for sake of reproducibility
n <- 6
dat <- data.frame(id=1:n, 
                  date=seq.Date(as.Date("2020-12-26"), as.Date("2020-12-31"), "day"),
                  group=rep(LETTERS[1:2], n/2),
                  age=sample(18:30, n, replace=TRUE),
                  type=factor(paste("type", 1:n)),
                  x=rnorm(n))

dbWriteTable(conn = {connection}, name = "db.temp_table", value = dat, row.names = FALSE,temporary = FALSE)


但是,当我运行 dbWriteTable 时,我收到一条错误消息,提示我无权写入。我在可以写入的开发阶段尝试了相同的代码,并且它成功运行。经过进一步检查,我发现 dbWriteTable 实际上并没有创建临时表,而是创建了一个实际表。我是否遗漏了不允许我创建临时表的语句。

我使用这些语句创建带有键的临时表,以便从 Netezza 数据库连接和导入数据。

我使用了以下资源R JDBC 错误“无法检索 JDBC 结果集以插入...”,但我不确定这是否能解决我的问题。

任何帮助表示赞赏。

谢谢

标签: rnetezzadbi

解决方案


推荐阅读