MATRICES

RONALD
23 de Agosto del 2004
DE QUE MANERA SE TRABAJAN LAS MATRICES EN ORACLE?

COMO SE DISEÑAN EN FORM?

SI TIENEN ALGUN EJEMPLO SE LE AGRADECE MANDARLO

[email protected]

SALUDOS DESDE VENEZUELA

Pablo Ponte Miserendino
23 de Agosto del 2004
Existen varios types bastante complejos...desde tablas PL anidadas , Arrays bidimensionales, VArrrays....
Es, desde mi punto de vista, bastante complicado y poco performante trabajar de esta forma, es decir, la relacion costo beneficio no me convence....
Por eso te pido que me comentes para qué necesitas esta información y quizá te pueda trazar una solución alternativa a tu caso particular si usar este tipo de estructuras...

acanonica
23 de Agosto del 2004
Multilevel VARRAY Example
declare
type t1 is varray(10) of integer;
type nt1 is varray(10) of t1; -- multilevel varray type
va t1 := t1(2,3,5);
-- initialize multilevel varray
nva nt1 := nt1(va, t1(55,6,73), t1(2,4), va);
i integer;
va1 t1;
begin
-- multilevel access
i := nva(2)(3); -- i will get value 73
dbms_output.put_line(i);
-- add a new varray element to nva
nva.extend;
nva(5) := t1(56, 32);
-- replace an inner varray element
Using Multilevel Collections
5-22 PL/SQL User’s Guide and Reference
nva(4) := t1(45,43,67,43345);
-- replace an inner integer element
nva(4)(4) := 1; -- replaces 43345 with 1
-- add a new element to the 4th varray element
-- and store integer 89 into it.
nva(4).extend;
nva(4)(5) := 89;
end;
/
Multilevel Table Example
declare
type tb1 is table of varchar2(20);
type ntb1 is table of tb1; -- table of table elements
type tv1 is varray(10) of integer;
type ntb2 is table of tv1; -- table of varray elements
vtb1 tb1 := tb1('one', 'three');
vntb1 ntb1 := ntb1(vtb1);
vntb2 ntb2 := ntb2(tv1(3,5), tv1(5,7,3)); -- table of varray
elements
begin
vntb1.extend;
vntb1(2) := vntb1(1);
-- delete the first element in vntb1
vntb1.delete(1);
-- delete the first string from the second table in the nested
table
vntb1(2).delete(1);
end;
/