2017-02-25 44 views
0

我正尝试使用R中的RODBC包将HANA(SPS 11)中的特定模式中的表写入数据,并且存在希望有人可以提供帮助的问题。创建表单并将表单填充到HANA的问题RODBC R

我正在使用sqlSave来创建文件并使用下面的命令写入它,但得到奇怪的结果。

RES < - sqlSave(CH,dim_product_master_test,表名= table.for.save,rownames = FALSE,冗长= TRUE)

查询:CREATE TABLE MYSCHEMA “DIM_PRODUCTSX”( “ProdSrcMonth” VARCHAR(255) ,“Category”varchar(255),“SubCategory”varchar(255),“Brand”varchar(255),“Material”INTEGER,“Product”varchar(255),“EAN”varchar(255).... etc )

我收到错误:

错误SQLCOLUMNS(通道,表名): “MYSCHEMA “DIM_PRODUCTSX” ':在通道上找不到表格

但是,表正在创建,那么它似乎无法添加数据或找不到它。

我尝试了不同的引号方案(包括模式名称周围),但结果相同。 (“ProdSrcMonth”varchar(255),“Category”varchar(255),“SubCategory”varchar(255),“Brand”varchar(255),“Material(0,0) “INTEGER, ”产品“ 为varchar(255), ”EAN“ VARCHAR(255)...等

在SQLCOLUMNS(通道,表名)错误: ' ”MYSCHEMA DIM_PRODUCTSY “”。“':表中未发现通道

试图引用这两个,但没有什么区别。再次,创建表,但不能更新。

如果我只是把在sqlSave数据帧,它高兴地创建表nd添加数据,但我需要更多的控制。

此外,任何人都知道如何创建列存储表?似乎默认为行存储。

在此先感谢。

+0

为了创建你需要指定要这在创建表的列存储表声明:CREATE COLUMN TABLE xyz ... –

+0

是的,好点。但是,我尝试使用RODBC SQLSave和上面的SQL是它生成的,而不是我提供的。 – ingrid

+0

谢谢@lars回答。但是,我尝试使用RODBC SQLSave和上面的SQL是它生成的,而不是我提供的。所以,猜你说我需要自己执行create语句来指定列存储。我做了预创建表,但我遇到的更大问题是SQLSave似乎无法找到创建的表来保存它。 SQLUpdate和SQLSave都给出了“在通道上找不到表”消息。我使用的表命名不起作用? – ingrid

回答

0

通常,事先在SAP HANA中指定目标表是一个好主意。这样,COLUMN/ROW存储设置和每列的特定数据类型等设置都可以设置(例如,即使在需要保存UNICODE数据时,sqlSave似乎也不会创建NVARCHAR列)。

这是刚刚开箱的,我(也SPS11)为例:

library("RODBC") 
ch<-odbcConnect("SK1", uid="DEVDUDE",pwd="*******") 

table.for.save <- 'AIRQUALITY' 
aqdata <- airquality 
sqlSave(ch,dat = aqdata, tablename = table.for.save, verbose = TRUE, rownames = FALSE) 
odbcClose(ch) 

Query: CREATE TABLE "AIRQUALITY" ("Ozone" INTEGER, "SolarR" INTEGER, "Wind" DOUBLE, "Temp" INTEGER, "Month" INTEGER, "Day" INTEGER) Query: INSERT INTO "AIRQUALITY" ("Ozone", "SolarR", "Wind", "Temp", "Month", "Day") VALUES (?,?,?,?,?,?)

Binding: 'Ozone' DataType 4, ColSize 10 Binding: 'SolarR' DataType 4, ColSize 10 Binding: 'Wind' DataType 8, ColSize 15 Binding: 'Temp' DataType 4, ColSize 10 Binding: 'Month' DataType 4, ColSize 10 Binding: 'Day' DataType 4, ColSize 10 Parameters: no: 1: Ozone 41//no: 2: SolarR 190//no: 3: Wind 7.4//no: 4: Temp 67//no: 5: Month 5//no: 6: Day 1// ...