在Oracle中出现错误,在插入时使用批量收集不工作。任何建议如何解决以下问题。很高兴使用任何其他选项
获取错误- ORA-00902:无效的数据类型
/*
create table locations
(
id number(5),
Name varchar(10)
);
Insert into locations values(1,'India');
Insert into locations values(2,'UK');
Insert into locations values(3,'USA');
create table locations_cpy
(
id number(5)
);
commit;
*/
drop package DataTypeIssue ;
/
CREATE OR REPLACE PACKAGE DataTypeIssue AS
TYPE T_CURSOR IS REF CURSOR;
TYPE array_of_numbers IS table OF NUMBER(5);
PROCEDURE DataTypeIssue_example(V_CURSOR OUT T_CURSOR);
END DataTypeIssue;
/
CREATE OR REPLACE PACKAGE BODY DataTypeIssue AS
PROCEDURE DataTypeIssue_example(V_CURSOR OUT T_CURSOR) IS
v_LocationIds array_of_numbers;
v_cnt number;
v_error_code NUMBER;
BEGIN
select id BULK COLLECT into v_LocationIds from locations bc;
-- works here in select
open V_CURSOR for
select distinct id from locations
where id IN (SELECT column_value FROM TABLE(v_LocationIds));
-- insert gettting error
/*
ORA-00902: invalid datatype
*/
insert into locations_cpy
select distinct 1 from locations
where id IN (SELECT column_value FROM TABLE(v_LocationIds));
rollback;
END DataTypeIssue_example;
END DataTypeIssue;
/
任何帮助都将不胜感激
在Oracle中得到错误,使用批量收集在插入时不工作。任何建议如何解决以下问题。很高兴使用其他可用的选项,
insert into locations_cpy
select distinct id, Name from locations
where id IN (SELECT column_value FROM TABLE(v_LocationIds));
rollback;
END DataTypeIssue_example;