向HANA RODBC R创建和填充表的问题

时间:2017-02-25 14:57:40

标签: r hana rodbc

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

我使用sqlSave创建文件并使用下面的命令写入文件,但结果却很奇怪。

res< - sqlSave(ch,dim_product_master_test,tablename = table.for.save,rownames = FALSE,verbose = 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(channel,tablename)出错:   'MYSCHEMA。“DIM_PRODUCTSX”':在频道上找不到表格

但是,正在创建表格,然后似乎无法添加数据或找到它。

我尝试使用不同的引号方案(包括模式名称)但结果相同。

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

sqlColumns(channel,tablename)出错:   '“MYSCHEMA”。“DIM_PRODUCTSY”':在频道上找不到表格

尝试引用两者,但没有区别。再次,创建表但无法更新它。

如果我只是在sqlSave中抛出数据帧,它很乐意创建表并添加数据但我需要更多的控制权。

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

提前致谢。

1 个答案:

答案 0 :(得分:1)

通常,预先在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)
  

查询:创建表&#34; AIRQUALITY&#34; (&#34; Ozone&#34; INTEGER,&#34; SolarR&#34; INTEGER,&#34; Wind&#34; DOUBLE,&#34; Temp&#34; INTEGER,&#34; Month&#34; INTEGER ,&#34; Day&#34; INTEGER)   查询:INSERT INTO&#34; AIRQUALITY&#34; (&#34; Ozone&#34;,&#34; SolarR&#34;,&#34; Wind&#34;,&#34; Temp&#34;,&#34; Month&#34;,&#34; Day&#34;)VALUES(?,?,?,?,?,?)

     

绑定:&#39;臭氧&#39; DataType 4,ColSize 10   绑定:&#39; SolarR&#39; DataType 4,ColSize 10   绑定:&#39; Wind&#39; DataType 8,ColSize 15   绑定:&#39; Temp&#39; DataType 4,ColSize 10   绑定:&#39;月&#39; DataType 4,ColSize 10   绑定:&#39; Day&#39; DataType 4,ColSize 10   参数:   否:1:臭氧41 / /否:2:SolarR 190 / /否:3:风7.4 / /否:4:温度67 / /否:5:第5个月/ /否:6:第1天/ /   ...