Erreur création de procédure
Bonjour à tous,
Je débute en PL/SQL et dans le cadre d'une base de gestion de produits je souhaite créer une procédure qui permet l'enregistrement de pièces.
Une pièce a une dimension et est composée d'une matière (bois, fer...).
J'ai crée les types suivants :
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20
| CREATE OR REPLACE TYPE t_Matiere AS OBJECT (
Nom VARCHAR(30),
Prix_Kilo numeric(10,2),
Masse_Volumique integer(4)
) ;
CREATE OR REPLACE TYPE t_Dimension AS OBJECT (
Longueur integer(4),
Largueur integer(4),
Hauteur integer(4),
Diametre integer(4)
);
CREATE OR REPLACE TYPE t_Piece AS OBJECT (
Nom VARCHAR(30),
Forme VARCHAR(30),
Dimension t_Dimension,
Matiere REF t_Matiere
) ; |
Et les tables :
Code:
1 2
| CREATE OR REPLACE TABLE Matieres OF t_Matiere (PRIMARY KEY(Nom));
CREATE OR REPLACE TABLE Pieces OF t_Piece (PRIMARY KEY(Nom)); |
J'ai donc crée la procédure :
Code:
1 2 3 4 5 6
| CREATE OR REPLACE PROCEDURE insert_piece (p_nom IN VARCHAR(30), p_forme IN VARCHAR(30),p_dimension IN t_Dimension,p_matiere IN VARCHAR(30))
IS
BEGIN
INSERT INTO Pieces VALUES (p_nom,p_forme,p_dimension,
(SELECT REF(m) FROM Matieres m WHERE m.Nom = p_matiere));
END; |
Pas bien compliquée à première vue, mais impossible de la créer normalement.
Etant donné que je suis en ligne de commande, j'ai uniquement le message :
Citation:
"created with compilations errors"
Même en bidouillant à droite à gauche, ça ne veut pas. La requête avec des valeurs fonctionne correctement.
Merci de bien vouloir me donner un petit coup de main.