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;