TABLE() og CAST()
Jeg har lidt problemer med at få table collections til at virke som jeg gerne vil have. Optimalt vil jeg gerne have noget der ser sådan ud:type ArrayRecord_t is record (
targetid raw(16),
Hits integer
);
Type Array_t is table of ArrayRecord_t;
declare
Ar1 Array_t;
ArTotal Array_t;
begin
select ID, 0
bulk collect into Ar1
from SomeTable;
select ID, 0
bulk collect into Ar1
from SomeOtherTable;
select ID, count(ID) Hits
bulk collect into ArTotal
from TABLE(CAST(Ar1 as ArrayRecord_t))
group by ID;
end;
Dette virker ikke af flere grunde:
For det første bliver resultatet i Ar1 overskrevet i nummer 2 BULK COLLECT INTO.
Men mere alvorligt er, at jeg ikke kan finde ud at at behandle min collection som en tabel i den efterfølgende select med TABLE og CAST. Grunden til dette er, at jeg ikke kan gøre det for en collection der består af records. Hvis jeg laver min collection om til at bestå af integers, kan jeg godt bruge den i en select senere, men så har jeg ikke mit HITS med. Jeg har også tænkt over om jeg kan lave det som 2 arrays i stedet (et med hits og et med ID'er), men det tror jeg ikke jeg kan få til at fungere efterfølgende. Det skal helst være i 1 collection, og det skal være records der ligger i det.
Er der nogen der har nogle gode ideer?
/DMK