要将整数列读入整数列表
create function somedum()
returning int
define s LIST(INTEGER NOT NULL);
select id into s from informix.emptest;
end function
create table emptest(id int)
insert into emptest(id)values(7)
当我执行上述功能时
作为附件图片出现错误
答案 0 :(得分:0)
有关将元素插入LIST
中的Informix文档似乎对我产生了误导,因为我对示例(Insert into a LIST)的第一印象也使我使用了SELECT INTO
语法并获得了相同的错误:
-9634 No cast from integer to set(integer not null)
SELECT INTO
语法可用于复制/插入整个LIST
,而不复制元素到LIST
中。
要将元素插入LIST
中(或通常操纵它的元素),我们需要使用Informix虚拟表接口,在这种情况下,使用TABLE
语法从{创建虚拟表{1}}然后可以用来执行通常的插入/选择/更新/删除操作(Collection-Derived Table)。
LIST
执行我们得到的功能:
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;