我正在尝试创建一个在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
答案 0 :(得分:1)
无法创建列表类型 - 表类型始终是行结构,因为它们定义了记录的外观。类型不存储数据,因此行/列/此处没有任何区别。
对于您想要做的事情 - 将ARRAY从客户端应用程序交给SAP HANA - 这种差异并不重要,因为它根本无法做到这一点。
您可以在过程/函数和表之间传递数组,但是没有外部接口可以将数据传递到它们中。
只有使用ARRAY()
功能,您才能在服务器端创建阵列。
如果您搜索' hana array'在stackoverflow上,您会发现已经对此进行了相当广泛的讨论......
Insert array in HANA with JAVA,Upload an array in HANA或How to insert an array in a loop to the database列举了一些示例。