SQLScript:不允许标量类型
Posted
技术标签:
【中文标题】SQLScript:不允许标量类型【英文标题】:SQLScript: scalar type is not allowed 【发布时间】:2016-12-05 10:35:27 【问题描述】:我有以下 sql 命令:
SELECT DFT(weighted, 32768 ORDER BY rel_id).REAL as four FROM :fith
此函数返回一个单元格中包含 32769 个元素的数组。
现在我想使用unnest
函数来拆分结果。因此我需要将结果保存在一个变量中。
以下命令抛出错误:
my_array = SELECT DFT(weighted, 32768 ORDER BY rel_id).REAL as four FROM :fith;
===> invalid datatype: Column FOUR of table variable MY_ARRAY has an unsupported data type (ARRAY)
好吧...在将我的 my_array
声明为数组后,我收到此错误:
declare my_array double array;
my_array = SELECT DFT(weighted, 32768 ORDER BY rel_id).REAL as four FROM :fith;
==>scalar type is not allowed: MY_ARRAY:
我为什么要绕着这样的弯路做这件事? 文档说:
UNNEST 函数不能在 FROM 子句中直接引用 SELECT 语句
怎么了?我现在能做什么?
【问题讨论】:
【参考方案1】:问题很可能是您试图将 SQL 结果放入数组中。 但是,您可以将 SQL 结果存储在本地表变量中。
在你的情况下,我会创建一个光标并循环遍历结果集。
在循环体中,您可以使用自定义拆分字符串函数拆分单元格内容,如线程HANA: Split string?中所述
【讨论】:
以上是关于SQLScript:不允许标量类型的主要内容,如果未能解决你的问题,请参考以下文章