M2 - Bases de dades / Practiques UF3 : PL-SQL
Pràctica PL/SQL Cal lliurar un fitxer (.sql) amb totes les comandes SQL emprades i tot el codi PL/SQL, degudament comentat.
Data màxima lliurament: 30/04/2021
Especificació
Per a la implementació d'una base de dades que suporti anàlisi multidimensional és desitja crear una taula que emmagatzemi les diferents característiques referides a una data; això és: dia, dia de la setmana,mes, any, trimestre... L'esquema relacional d'aquesta taula seria els següent:
TEMPS (data, dia, dia_setmana, mes, trimestre, any)
1.- Crea la taula TEMPS en la base de dades atenent a l'esquema relacional anterior; considerant l'atribut data com a clau principal. La resta dels atributs no admeten valors nuls.
2.- Crea una funció PL/SQL que donat un nombre enter obtingui en format text el corresponent mes. Per exemple:
EXECUTE convertir_mes(1) → Gener
3.- Crea un procediment emmagatzemat PL/SQL que rebi com a paràmetres un rang de dates i afegeixi en la taula TEMPS un registre per cada dia comprès entre aquestes dates. Per exemple:
EXECUTE afegir_temps('01/01/2017', '10/01/2017');
Per realitzar el procediment sol·licitat en el punt 3, has d'emprar la següent funció, que a partir d'una data et retorna el dia següent a aquesta data.
CREATE OR REPLACE FUNCTION dia_seguent (p_data_actual DATE)
RETURN DATE IS
BEGIN
RETURN TO_DATE(TO_CHAR(p_data_actual + 1));
END;