在Hana中创建列存储表类型

时间:2017-06-14 06:13:11

标签: sap hana hana-sql-script

我正在尝试创建一个在SAP Hana中将ARRAY作为列类型的表类型。当我使用标准DDL创建表类型时,即

CREATE TYPE MYSCHEMA.TABNAME AS TABLE("ObjList" INTEGER ARRAY);

我收到以下错误:

Could not execute 'CREATE TYPE "schema"."ListType" AS TABLE ( "ID" BIGINT      CS_FIXED, ...'
SAP DBTech JDBC: [7]: feature not supported: cannot create row table having array type: ObjList

从文档中不清楚如何创建表类型的列存储类型。由于我将ARRAY值从.NET代码传递到HANA中的存储过程以进行批量更新/ upsert,因此我无法取消此要求。

TIA

1 个答案:

答案 0 :(得分:1)

无法创建列表类型 - 表类型始终是行结构,因为它们定义了记录的外观。类型不存储数据,因此行/列/此处没有任何区别。

对于您想要做的事情 - 将ARRAY从客户端应用程序交给SAP HANA - 这种差异并不重要,因为它根本无法做到这一点。 您可以在过程/函数和表之间传递数组,但是没有外部接口可以将数据传递到它们中。 只有使用ARRAY()功能,您才能在服务器端创建阵列。 如果您搜索' hana array'在stackoverflow上,您会发现已经对此进行了相当广泛的讨论......

Insert array in HANA with JAVAUpload an array in HANAHow to insert an array in a loop to the database列举了一些示例。