我正在尝试使用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中抛出数据帧,它很乐意创建表并添加数据但我需要更多的控制权。
此外,任何人都知道如何创建列存储表?似乎默认为行存储。
提前致谢。
答案 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天/ / ...