Je débute en PL/SQL , donc un peu d'aide sera la bienvenue

j'ai les relations suivantes :

THEATRES (IDTHEATRE, NOMTHEATRE, ADRESSE, TEL, NBREPLACES)
AUTEURS (IDAUTEUR, PRENOMAUTEUR, NOMAUTEUR, NAISSANCE, DECES,NATIONALITE)
ACTEURS (IDACTEUR, PRENOMACTEUR, NOMACTEUR, #IDTHEATRE)
PIECES (IDPIECE, TITRE, TYPE, #IDTHEATRE, #IDAUTEUR)
REPRESENTATIONS (IDREPRESENTATION, #IDPIECE, DATE_A, PLACESRESTANTES)
JOUE (#IDACTEUR, #IDPIECE)

J'essaie de répondre aux questions suivantes :

1 . De créer un bloc PL/SQL pour ajouter automatiquement une pièce dans la base.

J'essaie avec :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
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
 
 
set serveroutput on;
 
 
CREATE OR REPLACE PROCEDURE Ajout ( 
		n_PIECES_lu  IN PIECES.IDPIECE%TYPE,
		TITRE_PIECES_lu IN PIECES.TITRE%TYPE ,
		TYPE_PIECES_lu IN PIECES.TYPE%TYPE,
		IDTHEATRE_PIECES_lu IN PIECES.IDTHEATRE%TYPE,
		IDAUTEUR_PIECE_lu IN PIECES.IDAUTEUR%TYPE ) 
IS 
 
BEGIN 
	-- Insertion automatique d'une nouvelle pièce dans la table PIECES  : 
 
	insert into PIECES(IDPIECE,TITRE,TYPE,IDTHEATRE,IDAUTEUR) 
	values(n_PIECES_lu, TITRE_PIECES_lu, TYPE_PIECES_lu,IDTHEATRE_PIECES_lu,IDAUTEUR_PIECE_lu);
 
	-- Insertion automatique dans la table JOUE1 tous les acteurs pensionnaires du THEATRE où la pièce a été jouée : 
 
	For line in ( SELECT IDTHEATHRE FROM ACTEURS WHERE  ACTEURS.IDTHEATRE=IDTHEATRE_PIECES_lu) 
	LOOP 	
		insert into JOUE1 values (ligne.IDACTEUR,IDTHEATRE_PIECE_lu);
	endloop 
 
COMMIT; 
 
END;
/
show errors ;
ET insérer automatiquement dans la table JOUE tous les acteurs pensionnaires du théâtre comme acteurs de la pièce ( paramètres passés : ts les champs de PIECES ) . ===> Je ne vois pas trop cmt faire !! :p

2. Ajouter les traitements d'erreurs possibles :

- n° pièce déjà présent
- identifiant théâtre inconnu
- identifiant auteur inconnu
- le ‘Grenier théâtre’ ne présente jamais de pièces de type ‘Tragédie’,
- si la pièce est déjà donnée dans un autre théâtre (titre équivalent), le type de la pièce
doit être le même.

help !