ORA-00947 Nicht genügend Werte, während Typ global deklariert wird

<code> create table foo(
   id number,
   status varchar2(10)
 );
</code>

Tabelle erstellt.

<code>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;
</code>

Dies ist eine sehr merkwürdige Situation, wenn ich ein Typobjekt und eine verschachtelte Tabelle dieses Typs global erstelle und eine Variable des verschachtelten Tabellentyps erstelle und in dieser Variablen eine Sammelmenge sammle, die ich erhalte

ORA-00947: Fehler mit nicht genügend Werten

Wenn ich jedoch einen Datensatztyp und eine verschachtelte Tabelle dieses Datensatztyps deklariere und dann eine Variable der verschachtelten Tabelle innerhalb des Pakets, funktioniert die obige Massensammlung und es wird kein Fehler ausgegeben

Kann mir jemand dabei helfen?

Antworten auf die Frage(1)

Ihre Antwort auf die Frage