Stored procedures 在HANA中上载数组

Stored procedures 在HANA中上载数组,stored-procedures,hana,Stored Procedures,Hana,我是SAP HANA的新手,最近正在将我们的一些数据库迁移到SAP HANA,发现它的性能非常好 我面临的问题是无法在HANA中上载数组列。但我发现有一种方法可以使用该方法在HANA中插入数组 INSERT INTO T1 VALUES ( 1, ARRAY ( 1, 2, 3, 4 ) ) 因为我有一个.CSV文件,其中前两列是整数,第三列是postgres中的bigint数组,它看起来像: input.csv 1,2,"{1545645,2652656,3545645}" 3,4,"{

我是SAP HANA的新手,最近正在将我们的一些数据库迁移到SAP HANA,发现它的性能非常好

我面临的问题是无法在HANA中上载
数组列
。但我发现有一种方法可以使用该方法在HANA中插入数组

  INSERT INTO T1 VALUES ( 1, ARRAY ( 1, 2, 3, 4 ) )
因为我有一个
.CSV
文件,其中前两列是整数,第三列是
postgres
中的bigint数组,它看起来像:

input.csv
1,2,"{1545645,2652656,3545645}"
3,4,"{155535,244564654,346456456,448484,5456456465,664654564}"
9,12,"{14645646,24564564,3478484,447984894,5464646,644458648,745464,849494,9494848}"

如何在HANA(SPS 12)中上载阵列列?非常感谢您的帮助。

这之前已经在这里讨论过了。使用ARRAY()函数是将数组插入数组类型列的唯一方法

如果要从文件加载数组数据,则必须使用自定义加载程序为每个记录构造数组(..)函数调用


根据您的使用情况,您可能会重新考虑为您的数据使用其他存储选项。

自定义加载程序是什么意思?您能否解释一下如何加载input.csv,以便我能够理解这个概念(因为我的数组没有固定的大小)。这意味着您必须编写一个程序,比如JAVA,它读取CSV文件并从文件中找到的记录中生成SQL INSERT语句。SAP HANA目前不支持带板载方法的数组导入/导出。因此,你的意思是,如果我有100万条记录,那么我必须生成100万条Insert语句。我不能在SQL中使用任何循环吗?是的,在这种情况下,你需要为每条记录使用一条单独的语句,因为你需要使用数组()函数,并用要插入的值填充它。通常,SQL不支持循环(没有标准SQL支持)。有一个SQL扩展(SQL脚本)确实支持循环,但在这里对您没有帮助。如果您习惯于在其他DBMS中使用阵列,那么您需要确保在开始构建自定义加载程序之前,可以在HANA中以相同的方式使用阵列。HANA中的数组支持不是很强,现在我明白了,但是既然你来自SAP,你可以考虑这不影响HANA的使用,因为它是一个非常强大的数据库,但是对数组的支持不强可能是个缺点。只是一个建议,非常感谢你的解释。