[英]Oracle collection insert statement
在 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;
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.