2016-12-05 2 views
0

У меня есть следующие SQL команды:SQLScript: скалярный тип не допускается

SELECT DFT(weighted, 32768 ORDER BY rel_id).REAL as four FROM :fith 

Эта функция возвращает массив 32769 элементов в одной ячейке. enter image description here

Теперь я хочу использовать функцию 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: 

Почему я хотите сделать это над таким обходом? В документации сказано:

The UNNEST function cannot be referenced directly in a FROM clause of a SELECT statement

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

ответ

0

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

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

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

Смежные вопросы