M2 - Bases de dades / Exercicis UF3: Llenguatges SQL / Solucions PL-SQL T6

De wikiserver
La revisió el 11:28, 24 abr 2014 per Rsort (Discussió | contribucions) (T6- Creació d'estructures de control)
Dreceres ràpides: navegació, cerca

T6- Creació d'estructures de control

SET VERIFY OFF
ACCEPT p_dept_name PROMPT 'Introdueix el nom del departament: '
DECLARE
v_deptno dept.depno%TYPE;
BEGIN
v_deptno := :g_max_deptno + 10;
INSERT INTO dept(deptno, dname, loc)
VALUES (v_deptno, '&p_dept_name, NULL);
COMMIT;
END;
/
SET VERIFY ON


SELECT *
FROM dept
WHERE deptno = :g_max_depnto +10;
  • Exercici 1

Crear una nova taula anomenada MESSAGES per emmagatzemar en una columna anomenada RESULTS cadenes de caràcters de longitud màxima 60 caràcters.

CREATE TABLE messages(results VARCHAR2 (60));

a) crea un bloc per insertar els números del 1 al 10 excepte el 6 i el 8.

b) fes un COMMIT al final del bloc.

c) comprova que la taula messages s'actualitzat correctament.

BEGIN
FOR i IN 1..10 LOOP
IF i = 6 or i = 8 THEN
null;
ELSE
INSERT INTO messages(results)
VALUES (i);
END IF;
COMMIT;
END LOOP;
END;
/


SELECT *
FROM messages;


  • Exercici 2

Crear un nou bloc plsql per a calcular l'import de la comissió d'un empleat, aquesta comissió dependrà del sou de l'empleat.

a) Inserta un nou empleat en la taula EMP que tingui un sou NULL.

b) Crea una variable per tal d'emmagatzemar el número de l'empleat introduït per teclat.

c) si el sou d'aquest empleat és inferior a 1000$ l'import de la comissió serà un 10% d'aquest sou.

d) si el sou d'aquest empleat està entre 1000$ i 1500$ l'import de la comissió serà un 15% d'aquest sou.

e) si el sou d'aquest empleat és superior a 1500$ l'import de la comissió serà un 20% d'aquest sou.

f) si el sou d'aquest empleat és NULL la comissió serà un 0.

g) comprova el funcionament d'aquest bloc per cadadascun dels casos anteriors.

  • Exercici 3

Modifica l'exercici 1 per afegir al costat del número parell o imparell en funció de si aquest és parell o imparell.

  • Exercici 4

Afegiu una nova columna a la taula EMP per afegirs asteriscs “*”

  • Exercici 5

Crea un bloc PL/SQL que introdueixi en la columna creada anteriorment un asterisc per cada 100$ d'un empleat seleccionat per teclat al introduir el seu número d'empleat. Arrodoniu el sou fins el número enter més proper.