Diferència entre revisions de la pàgina «M2 - Bases de dades / Online UF3 : Prova PL/SQL»

De wikiserver
Dreceres ràpides: navegació, cerca
(Exercicis OnLine – Prova PL/SQL)
(Exercicis OnLine – Prova PL/SQL)
Línia 22: Línia 22:
  
 
'''(*)''' exemple de recorregut d’una matriu associativa indexada per varchar2:
 
'''(*)''' exemple de recorregut d’una matriu associativa indexada per varchar2:
 +
<pre>
 +
declare
 +
  type t_vector is table of number(3) index by varchar2(10);
 +
  v_vector t_vector;
 +
  subind varchar2(10);
 +
begin
 +
  v_vector('Cuarenta') := 40;
 +
  v_vector('cuarenta') := -40;
 +
  v_vector('Cinco') := 5;
 +
  v_vector('Quince') := 15;
 +
 +
  dbms_output.put_line('count: '|| v_vector.count);
 +
 +
  subind := v_vector.first;
 +
  while subind is not NULL loop
 +
    dbms_output.put_line(subind ||': '|| v_vector(subind));
 +
    subind := v_vector.next(subind);
 +
  end loop;
 +
end;
 +
</pre>

Revisió del 15:01, 12 juny 2020

Exercicis OnLine – Prova PL/SQL

Un cop acabada aquesta part de la prova pengeu un document (PL_SQL_Nom_i_PrimerCognom) en l’apartat respectiu:

PL/SQL

Fes un bloc PL/SQL anònim, que presenti un informe sobre la facturació per categories de productes (veure final del document).

1. Crea un paquet que contingui:

1.1. La declaració de la constant quantitat (en el ex. quantitat = 5000).

1.2. Una taula de registres indexada pel nom de cada categoria que contindrà en cada registre el total facturat d’aquella categoria, el nom del producte que més s'ha facturat, el total facturat per a aquest producte, el nombre de productes dels que s'ha facturat més d'una determinada quantitat i dels que s'ha facturat menys que aquesta mateixa quantitat.

1.3. Un procediment privat que inicialitzi la taula amb totes les categories i les facturacions a 0. Utilitzeu un cursor que recuperi el NOMBRECATEGORIA de la taula CATEGORIAS per conèixer les categories de productes actuals.

1.4 Un procediment que rebi com a paràmetre el NOMBRECATEGORIA, obtingui les dades respectives a tots els productes d’aquesta categoria i actualitzi convenientment la taula. En cas de que no existeixi generarà l’excepció am el codi: -20011 i el missatge: 'No existeix cap categoria amb aquest nom'. Utilitza un cursor per recuperar les dades de facturació dels productes de la categoria de les taules PEDIDOS i DETALLES_PEDIDOS.

1.5. Un procediment que recorrerà la taula de registres i mostrarà per pantalla un informe com el mostra't al final d'aquesta pàgina(*).

1.6. Quan es faci referencia per primera vegada al paquet s’inicialitzarà amb l’execució del procediment privat.

(*) exemple de recorregut d’una matriu associativa indexada per varchar2:

declare
  type t_vector is table of number(3) index by varchar2(10);
  v_vector t_vector;
  subind varchar2(10);
begin
  v_vector('Cuarenta') := 40;
  v_vector('cuarenta') := -40;
  v_vector('Cinco') := 5;
  v_vector('Quince') := 15;

  dbms_output.put_line('count: '|| v_vector.count);

  subind := v_vector.first;
  while subind is not NULL loop
    dbms_output.put_line(subind ||': '|| v_vector(subind));
    subind := v_vector.next(subind);
  end loop;
end;