首页 > 解决方案 > R Teradata 易失性表与 ROBDC

问题描述

我一直在试图弄清楚如何将数据帧写入 teradata 服务器上的易失性表。我试图遵循这个例子,但运气不佳。

这是我的尝试:

pass = getPass(msg = "Network Password:")
edv = odbcConnect(dsn = "", uid = "", pwd = pass)
rm(pass)

# So I believe we'll first have to create a table:
quer1 = paste("CREATE VOLATILE TABLE testdat",
               "(op_sys INT, enter_final_icu VARCHAR(20), mrn VARCHAR(8))",
               "UNIQUE PRIMARY INDEX(op_sys)",
               "ON COMMIT PRESERVE ROWS;")
sqlQuery(edv, quer1)

# This returns a zero row table, so far so good:
quer2 = "select top 10 * from testdat"
sqlQuery(edv, quer2)

# See if we can save the data:
columnTypes <- list(op_sys = "INT", 
                    enter_final_icu = "VARCHAR(20)", 
                    mrn = "VARCHAR(8)")
# pop is a data.frame with 3 the same 3 columns as in the definition of testdat
sqlSave(channel = edv, 
        dat = pop, 
        tablename = 'testdat', 
        append = TRUE, 
        rownames = FALSE, 
        varTypes = columnTypes)


sqlUpdate(channel = edv, 
        dat = pop, 
        tablename = 'testdat')

sqlSave声明告诉我“表 testdat 已经存在”,这是我认为我想做的。我以为update = TRUE可以让我将数据添加到表中...

sqlUpdate语句告诉我“testdat:找不到表”,考虑到我能够查询它,这很奇怪。

任何建议将不胜感激,谢谢!

标签: rteradatarodbc

解决方案


推荐阅读