ragazzi. Ecco un semplice array di campioni bidimensionale in PL/SQL, che funziona perfettamente.Come inizializzare manualmente una raccolta di RECORD in PL/SQL?
declare
type a is table of number;
type b is table of a;
arr b := b(a(1, 2), a(3, 4));
begin
for i in arr.first .. arr.last loop
for j in arr(i).first .. arr(i).last loop
dbms_output.put_line(arr(i) (j));
end loop;
end loop;
end;
Cosa devo fare, è quello di creare qualcosa di simile per una tabella di RECORDS
. Come questo:
type a is record(a1 number, a2 number);
type b is table of a;
la domanda è: posso inizializzare manualmente questo tipo di matrice, o dovrebbe essere riempito da bulk collects
o simili? La stessa sintassi di cui sopra non sembra funzionare e non sono riuscito a trovare alcun esempio di inizializzazione nei manuali.
questo è troppo male. –
Sì. Raramente ho avuto alcun uso per le strutture RECORD, a parte quelle che sono associate a una tabella o cursore usando% ROWTYPE e sono utili per FETCHing in. –
hm, beh, li uso ogni volta che ho bisogno di un'archiviazione temporanea dei dati con una struttura dati nota - questo rende il codice una sorta di auto-commento. forse è una cattiva pratica –