문제

I want to write query to database in Oracle stored procedure. I send to procedure array

TYPE NUMBER_ARRAY IS TABLE OF NUMBER;

in my query i want to limit result like that:

SELECT *
    FROM TABLE T
   WHERE ID IN
         (SELECT * FROM TABLE(CAST(NUMBER_ARRAY AS TABLE)))

but it returns errors:

PLS-00642 ORA-22906

도움이 되었습니까?

해결책

create or replace type NUMBER_ARRAY as TABLE OF NUMBER;

declare 
numvar number_array := number_array(); 
numvar1 number_array; 
begin 
for i in 1..10 loop 
  numvar.extend(); 
  numvar(i) := i; 
end loop; 
SELECT * bulk collect into numvar1 FROM TABLE(numvar);   

for i in numvar1.first..numvar1.last loop 
  dbms_output.put_line(numvar1(i)); 
end loop; 
end; 
라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top