Документация Informix по вставке элементов в LIST
кажется мне вводящей в заблуждение, поскольку мое первое впечатление от примера ( Вставка в список ) также побудило меня использовать синтаксис SELECT INTO
и получитьта же ошибка:
-9634 No cast from integer to set(integer not null)
Синтаксис SELECT INTO
можно использовать для копирования / вставки всего LIST
, а не элементов в LIST
.
Для вставки элемента вLIST
(или вообще манипулировать его элементами) нам нужно использовать интерфейс виртуальной таблицы Informix, в этом случае используя синтаксис TABLE
для создания виртуальной таблицы из LIST
, которая затем может быть использована для обычной вставкиОперации / select / update / delete ( Производная таблица ).
CREATE FUNCTION somedum()
RETURNING LIST( INTEGER NOT NULL ) AS alist;
DEFINE my_list LIST( INTEGER NOT NULL );
INSERT INTO TABLE( my_list ) SELECT id FROM emptest;
RETURN my_list;
END FUNCTION;
Выполняя полученную функцию:
EXECUTE FUNCTION somedum();
alist LIST{7 }