ORA-00947 No hay suficientes valores al declarar el tipo globalmente
create table foo(
id number,
status varchar2(10)
);
Tabla creada.
insert into foo values( 1, 'open' );
insert into foo values( 2, 'close' );
insert into foo values( 3, 'open' );
insert into foo values( 4, 'open' );
insert into foo values( 5, 'close' );
create type foo_obj is object (
id number,
status varchar2(10)
);
/
create type foo_nt
as table of foo_obj;
/
create or replace package test_bulk
is
procedure temp;
end;
/
create or replace package body test_bulk
is
procedure temp
is
v_nt foo_nt;
begin
select id ,status
bulk collect into v_nt
from foo;
end temp;
end test_bulk;
Esta es una situación muy extraña, cuando creo un objeto de tipo y una tabla anidada de ese tipo a nivel mundial y creo una variable del tipo de tabla anidada y la recopilación masiva en esa variable recibo
ORA-00947: error de valores insuficientes
Sin embargo, cuando declaro un tipo de registro y una tabla anidada de ese tipo de registro Y luego una variable de la tabla anidada Dentro del paquete, entonces la recopilación masiva anterior funciona y no arrojará un error
¿Puede alguien ayudarme con esto?