1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49
| --construction d'un objet memoire avec les valeurs a inserer dans la bd
memoire := memoires_t( UPPER(TRIM(p_isbn)),
p_titre,
p_langue,
p_typetud,
p_promotion,
DOM_NOTICE_t(p_notice),
l_refmotscles_t(),
l_auteurs_t(),
l_refexemplaires_t()
);
memoire.INSERE_MEMOIRE; --insere un memoire dans la bd
--si des auteurs ont ete affecte au memoire
IF(TRIM(p_auteur(1))<>'aucunauteur')
THEN
--pour chaque auteur
FOR i IN 1..p_auteur.count
LOOP
DECLARE
m_nom_auteur obj_auteurs.NOM%type;
m_prenom_auteur obj_auteurs.PRENOM%type;
m_place number;
m_num_auteur obj_auteurs.REFAUTEUR%TYPE;
m_auteurnom obj_auteurs.REFAUTEUR %type;
BEGIN
--decompose le memoire en nom et prenom
m_place := INSTR(p_auteur(i),' ');
m_nom_auteur := TRIM(SUBSTR(p_auteur(i),1,m_place));
m_prenom_auteur := TRIM(SUBSTR(p_auteur(i),m_place));
SELECT to_char(SEQ_AUTEURS.nextval)
INTO m_num_auteur
FROM DUAL;
--INSERT INTO TEST VALUES(m_num_auteur,m_nom_auteur,m_prenom_auteur);
INSERT INTO TABLE
(SELECT listeauteurs FROM OBJ_MEMOIRE WHERE Refouvrage = UPPER(TRIM(p_isbn)))
VALUES (auteurs_t(to_char(m_num_auteur),UPPER(m_nom_auteur),UPPER(m_prenom_auteur)));
EXCEPTION
WHEN OTHERS THEN htp.print('ERRREUR BIBLIO : '||sqlcode||sqlerrm||'m_num_auteur = '||m_num_auteur||' p_isbn '||p_isbn || 'nom_auteur ' || m_nom_auteur || 'prenom_auteur ' || m_prenom_auteur);
END;
END LOOP;
END IF; |
Partager