SQLScript: скалярный тип не допускается

У меня есть следующая команда 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.

Что случилось? Что я могу сделать сейчас?


person Tobias    schedule 05.12.2016    source источник


Ответы (1)


Проблема, скорее всего, в том, что вы пытаетесь поместить SQL-результат в массив.
Однако вы можете сохранить результат SQL в локальной табличной переменной.

В вашем случае я бы создал курсор и перебрал бы набор результатов.

В теле цикла затем вы можете разделить содержимое ячейки с помощью настраиваемой функции разделения строк, как описано в потоке HANA: разделить строку?

person Thorsten Niehues    schedule 23.11.2017