Sql 选择整数数组

Sql 选择整数数组,sql,oracle,plsql,Sql,Oracle,Plsql,我想将表列(列类型为整数)中的值分配给整数数组。不幸的是,我不能 --类型-- --按程序申报 ABILITY_IDS ABILITY_ID_ARRAY; --声明-- 我收到了这个错误: [错误]ORA-00932(16:12):PL/SQL:ORA-00932:不一致的数据类型:预期的UDT GET编号 您需要使用批量收集子句将结果集存储到收集变量中。 请学习选择进入语句的文档: 插入条款 使用该子句,SELECT INTO语句从一行中检索一个或多个列,并将它们存储在一个或多个列中 多个

我想将表列(列类型为整数)中的值分配给整数数组。不幸的是,我不能

--类型--

--按程序申报

ABILITY_IDS ABILITY_ID_ARRAY;
--声明--

我收到了这个错误:

[错误]ORA-00932(16:12):PL/SQL:ORA-00932:不一致的数据类型:预期的UDT GET编号


您需要使用批量收集子句将结果集存储到收集变量中。

请学习
选择进入
语句的文档:

插入条款
使用该子句,SELECT INTO语句从一行中检索一个或多个列,并将它们存储在一个或多个列中 多个标量变量或一个记录变量


bulk\u collect\u into子句
使用此子句,SELECT into语句检索整个结果集并将其存储在一个或多个结果集中 收集变量


在您的示例中,PL/SQL语句应该如下所示:

SELECT ABILITY_FK BULK COLLECT INTO ABILITY_IDS 
FROM T_EDUCATION_ABILITY_REL 
WHERE EDUCATION_FK = edu_id;

什么类型的异能和异能ID-看起来一个是dtatetime,另一个是数字。还要检查您的where子句的通配符为整数,ABILITY为整数数组引用类型ABILITY为数组,ABILITY为数组引用类型ABILITY为数组?(除了100个限制。是否有一些关于最多100个能力ID的业务规则,或者您只是按照语法要求键入一个数字以使其进行编译?如果是,请将其设置为嵌套表而不是varray。)
SELECT ABILITY_FK INTO ABILITY_IDS 
FROM T_EDUCATION_ABILITY_REL 
WHERE EDUCATION_FK = edu_id;
SELECT ABILITY_FK BULK COLLECT INTO ABILITY_IDS 
FROM T_EDUCATION_ABILITY_REL 
WHERE EDUCATION_FK = edu_id;