25/02/2018 Ing. Emilio Batista Him 1
ORACLE 11g, SUMA DE MATRIZ EN ORACLE ,ARREGLO CON INDICE,
MATRIZ SUMA , A + B, DIAGONAL, A - B
Definición de VARRAYS.
Un varray se manipula de forma muy similar a las tablas de PL, pero se implementa
de forma diferente. Los elementos en el varray se almacenan comenzando en el índice
1 hasta la longitud máxima declarada en el tipo varray.
Los VARRAY deben estar inicializados antes de poder utilizarse. Para inicializar
un VARRAY se utiliza un constructor (podemos inicializar el VARRAY en la sección
DECLARE o bien dentro del cuerpo del bloque.
El tamaño de un VARRAY podrá aumentarse utilizando la función EXTEND, pero nunca
con mayor dimensión que la definida en la declaración del tipo. Por ejemplo, la variable
v_lista que sólo tiene 3 valores definidos por lo que se podría ampliar hasta cinco
elementos pero no más allá.
LIMIT . Devuelve el número máximo de elementos que admite el VARRAY.
EXTEND .Añade un elemento al VARRAY.
EXTEND(n) .Añade (n) elementos al VARRAY.
SINTAXIS:
TYPE <nombre_tipo> IS VARRAY (<tamaño_maximo>) OF <tipo_elementos>;
25/02/2018 Ing. Emilio Batista Him 2
-- para definir un arrays se usa = varray(i)--- tipo char
Declare
type vector is varray(10) of varchar2(10); -- char, definimos el vector con type y varry
v_vector vector := vector(); -- Iniciarizamos el vector
begin
dbms_output.put_line('UTP: USO Y MANEJO DE VECTORES EN ORACLE ');
dbms_output.put_line('========================================');
for i in 1..10 loop
v_vector.extend(); -- Extendemos el vector de 1-10
v_vector(i) := 'Juan ';
dbms_output.put_line('f(x)= '|| to_char(i)|| ' '|| v_vector(i)||to_char(i) );
end loop;
end;
MANEJO DE VECTORES EN ORACLE DE TIPO VARCHAR2 CADENA
SINTAXIS:
TYPE <nombre_tipo> IS VARRAY (<tamaño_maximo>) OF <tipo_elementos>;
25/02/2018 Ing. Emilio Batista Him 3
MANEJO DE VECTORES EN ORACLE DE TIPO NUMERICO
declare
-- para definir un arrays , se usa = varray(i) --- tipo char/ numérico
type vector is varray(20) of NUMERIC(10,2);
v_vector vector := vector(); -- Inicializar
begin
dbms_output.put_line('La ecuación de una cúbica usando arreglos indice');
for i in 1..10 loop
v_vector.extend(); -- Extendemos el vector de 1-10
v_vector(i):=i**3 + 1; -- es una función cubica
dbms_output.put_line(' f('||to_char(i)||')= '||to_char(v_vector(i)) ||' f('||to_char(i)||')=
'||to_char(v_vector(i)) );
end loop;
end;
SINTAXIS:
TYPE <nombre_tipo> IS VARRAY (<tamaño_maximo>) OF <tipo_elementos>;
25/02/2018 Ing. Emilio Batista Him 4
DECLARE
type nombre_arrays IS VARRAY(5) OF VARCHAR2(10);
type grado IS VARRAY(5) OF INTEGER;
nombre nombre_arrays;
marca grado;
total integer;
BEGIN
nombre := nombre_arrays('Juan01 ', 'Maria 02', 'Anita 02', 'Pedro02 ', 'Miriam ');
marca := grado(98, 97, 78, 87, 92);
total := nombre.count; -- cantidad de elementos del arrys
dbms_output.put_line('Total de : '|| total || ' Estudiantes');
FOR i in 1 .. total LOOP
dbms_output.put_line('Estudiante : ' || nombre(i) || '
marca: ' || marca(i));
END LOOP;
END;
OTRO EJEMPLO DE MANEJO DE ARREGLOS DE TIPO VARCHAR2 Y ENTERO
25/02/2018 Ing. Emilio Batista Him 5
OTRO EJEMPLODE MANEJO DE ARREGLOS DE TIPO VARCHAR2 Y ENTERO
En el proyecto incluya su conclusión de lo
aprendido de los vectores y los joins
declare
Type A_ARRAY is varray(3) of numeric;
TYPE Amatriz IS TABLE OF A_ARRAY;
A Amatriz; -- matriz A
B Amatriz; -- matriz b
S Amatriz; -- matriz suma
sumaA numeric:=0;
sumaB numeric:=0;
diagA numeric:=0;
diagB numeric:=0;
begin
MANEJO DE MATRIZ A,B, SUMA, DIAGONAL EN ORACLE DE TIPO NUMERICO
COMO DECLARAR LAS VARIABLES
25/02/2018 6Ing. Emilio Batista Him
MANEJO DE MATRIZ A,B, SUMA, DIAGONAL EN ORACLE DE TIPO NUMERICO
-- acumulamos la suma y la diagonal-----------------
diagA:= diagA + A(i)(i) ;-- diagonal
diagB:= diagB + B(i)(i) ;-- diagonal
for j in 1..3 loop
S(i)(j):= A(i)(j)+ B(i)(j) ;
sumaA:= sumaA + A(i)(j) ;
sumaB:= sumaB + B(i)(j) ;
end loop;
DBMS_OUTPUT.put_line( S(i)(1)|| ' '|| S(i)(2) ||' ' ||S(i)(3) );
end loop;
25/02/2018 7Ing. Emilio Batista Him

suma de matriz A+ B, diagonal, Oracle 11g, matriz, dos dimensiones

  • 1.
    25/02/2018 Ing. EmilioBatista Him 1 ORACLE 11g, SUMA DE MATRIZ EN ORACLE ,ARREGLO CON INDICE, MATRIZ SUMA , A + B, DIAGONAL, A - B Definición de VARRAYS. Un varray se manipula de forma muy similar a las tablas de PL, pero se implementa de forma diferente. Los elementos en el varray se almacenan comenzando en el índice 1 hasta la longitud máxima declarada en el tipo varray. Los VARRAY deben estar inicializados antes de poder utilizarse. Para inicializar un VARRAY se utiliza un constructor (podemos inicializar el VARRAY en la sección DECLARE o bien dentro del cuerpo del bloque. El tamaño de un VARRAY podrá aumentarse utilizando la función EXTEND, pero nunca con mayor dimensión que la definida en la declaración del tipo. Por ejemplo, la variable v_lista que sólo tiene 3 valores definidos por lo que se podría ampliar hasta cinco elementos pero no más allá. LIMIT . Devuelve el número máximo de elementos que admite el VARRAY. EXTEND .Añade un elemento al VARRAY. EXTEND(n) .Añade (n) elementos al VARRAY. SINTAXIS: TYPE <nombre_tipo> IS VARRAY (<tamaño_maximo>) OF <tipo_elementos>;
  • 2.
    25/02/2018 Ing. EmilioBatista Him 2 -- para definir un arrays se usa = varray(i)--- tipo char Declare type vector is varray(10) of varchar2(10); -- char, definimos el vector con type y varry v_vector vector := vector(); -- Iniciarizamos el vector begin dbms_output.put_line('UTP: USO Y MANEJO DE VECTORES EN ORACLE '); dbms_output.put_line('========================================'); for i in 1..10 loop v_vector.extend(); -- Extendemos el vector de 1-10 v_vector(i) := 'Juan '; dbms_output.put_line('f(x)= '|| to_char(i)|| ' '|| v_vector(i)||to_char(i) ); end loop; end; MANEJO DE VECTORES EN ORACLE DE TIPO VARCHAR2 CADENA SINTAXIS: TYPE <nombre_tipo> IS VARRAY (<tamaño_maximo>) OF <tipo_elementos>;
  • 3.
    25/02/2018 Ing. EmilioBatista Him 3 MANEJO DE VECTORES EN ORACLE DE TIPO NUMERICO declare -- para definir un arrays , se usa = varray(i) --- tipo char/ numérico type vector is varray(20) of NUMERIC(10,2); v_vector vector := vector(); -- Inicializar begin dbms_output.put_line('La ecuación de una cúbica usando arreglos indice'); for i in 1..10 loop v_vector.extend(); -- Extendemos el vector de 1-10 v_vector(i):=i**3 + 1; -- es una función cubica dbms_output.put_line(' f('||to_char(i)||')= '||to_char(v_vector(i)) ||' f('||to_char(i)||')= '||to_char(v_vector(i)) ); end loop; end; SINTAXIS: TYPE <nombre_tipo> IS VARRAY (<tamaño_maximo>) OF <tipo_elementos>;
  • 4.
    25/02/2018 Ing. EmilioBatista Him 4 DECLARE type nombre_arrays IS VARRAY(5) OF VARCHAR2(10); type grado IS VARRAY(5) OF INTEGER; nombre nombre_arrays; marca grado; total integer; BEGIN nombre := nombre_arrays('Juan01 ', 'Maria 02', 'Anita 02', 'Pedro02 ', 'Miriam '); marca := grado(98, 97, 78, 87, 92); total := nombre.count; -- cantidad de elementos del arrys dbms_output.put_line('Total de : '|| total || ' Estudiantes'); FOR i in 1 .. total LOOP dbms_output.put_line('Estudiante : ' || nombre(i) || ' marca: ' || marca(i)); END LOOP; END; OTRO EJEMPLO DE MANEJO DE ARREGLOS DE TIPO VARCHAR2 Y ENTERO
  • 5.
    25/02/2018 Ing. EmilioBatista Him 5 OTRO EJEMPLODE MANEJO DE ARREGLOS DE TIPO VARCHAR2 Y ENTERO En el proyecto incluya su conclusión de lo aprendido de los vectores y los joins
  • 6.
    declare Type A_ARRAY isvarray(3) of numeric; TYPE Amatriz IS TABLE OF A_ARRAY; A Amatriz; -- matriz A B Amatriz; -- matriz b S Amatriz; -- matriz suma sumaA numeric:=0; sumaB numeric:=0; diagA numeric:=0; diagB numeric:=0; begin MANEJO DE MATRIZ A,B, SUMA, DIAGONAL EN ORACLE DE TIPO NUMERICO COMO DECLARAR LAS VARIABLES 25/02/2018 6Ing. Emilio Batista Him
  • 7.
    MANEJO DE MATRIZA,B, SUMA, DIAGONAL EN ORACLE DE TIPO NUMERICO -- acumulamos la suma y la diagonal----------------- diagA:= diagA + A(i)(i) ;-- diagonal diagB:= diagB + B(i)(i) ;-- diagonal for j in 1..3 loop S(i)(j):= A(i)(j)+ B(i)(j) ; sumaA:= sumaA + A(i)(j) ; sumaB:= sumaB + B(i)(j) ; end loop; DBMS_OUTPUT.put_line( S(i)(1)|| ' '|| S(i)(2) ||' ' ||S(i)(3) ); end loop; 25/02/2018 7Ing. Emilio Batista Him