Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- --Package pentru diferite informatii despre carti
- CREATE OR REPLACE PACKAGE info_carti AS
- PROCEDURE afis_carti_2012;
- PROCEDURE afis_carti_categ_editura;
- FUNCTION afis_vechime_carte (id IN carte.id_carte%TYPE) RETURN NUMBER;
- FUNCTION afis_nr_imprumut (id IN carte.id_carte%TYPE) RETURN NUMBER;
- END info_carti;
- CREATE OR REPLACE PACKAGE BODY info_carti AS
- PROCEDURE afis_carti_2012 IS
- CURSOR c IS SELECT id_carte,ISBN,titlu,data_aparitie FROM carte WHERE data_aparitie > '01-01-2012';
- id_c carte.id_carte%TYPE;
- ISBN_c carte.ISBN%TYPE;
- titlu_c carte.titlu%TYPE;
- data_aparitie_c carte.data_aparitie%TYPE;
- BEGIN
- OPEN c;
- FOR b IN c LOOP
- FETCH c INTO id_c,ISBN_c,titlu_c,data_aparitie_c;
- DBMS_OUTPUT.PUT_LINE('Id: '||id_c||' ISBN: '||ISBN_c||' titlu: '||titlu_c||' data aparitie: '||data_aparitie_c);
- END LOOP;
- CLOSE c;
- END afis_carti_2012;
- PROCEDURE afis_carti_categ_editura IS
- titlu_c carte.titlu%TYPE;
- categorie_c categorie.nume%TYPE;
- editura_c editura.nume%TYPE;
- nr_carti NUMBER;
- BEGIN
- SELECT COUNT(id_carte) INTO nr_carti FROM carte;
- FOR i IN 1..nr_carti LOOP
- SELECT a.titlu,b.nume,c.nume INTO titlu_c,categorie_c,editura_c FROM carte a JOIN categorie b ON a.id_categorie = b.id_categorie
- JOIN editura c ON a.id_editura = c.id_editura WHERE id_carte = i;
- DBMS_OUTPUT.PUT_LINE('Cartea cu titlul '||titlu_c||' face parte din categoria '||categorie_c||' si a fost tiparita de editura '||editura_c);
- END LOOP;
- END afis_carti_categ_editura;
- FUNCTION afis_vechime_carte (id IN carte.id_carte%TYPE) RETURN NUMBER IS vechime NUMBER;
- BEGIN
- SELECT ROUND((SYSDATE-data_aparitie)/365) INTO vechime FROM carte WHERE id_carte = id;
- RETURN vechime;
- END afis_vechime_carte;
- FUNCTION afis_nr_imprumut (id IN carte.id_carte%TYPE) RETURN NUMBER IS numar NUMBER;
- BEGIN
- SELECT COUNT(id_carte) INTO numar FROM detalii_imprumut WHERE id_carte = id;
- RETURN numar;
- END afis_nr_imprumut;
- END;
- BEGIN
- info_carti.afis_carti_categ_editura;
- END;
- BEGIN
- DBMS_OUTPUT.PUT_LINE('Cartea are vechimea de '||info_carti.afis_vechime_carte(2)||' ani');
- END;
- BEGIN
- DBMS_OUTPUT.PUT_LINE('Cartea a fost imprumutata de '||info_carti.afis_nr_imprumut(10)||' ori');
- END;
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement