Bonsoir à tous,

Voila j'ai une question concernant le PL/SQL avec SQL3. Alors voici mon code:
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
create or replace procedure test as
BEGIN
    FOR refInLesPBases IN (Select ref(p) From LesPBases p Where p.mat = (Select ref(m) From LesMatieres m Where m.nom = 'bois'))
    LOOP
        Insert into TABLE (Select m.pBaseList From LesMatieres m Where m.nom = 'bois') 
	Values (refInLesPBases);
    END LOOP;
END;
@compile
Ça serait trop long d'expliquer la structure des tables et des objets, mais en gros tout ce qu'il faut savoir c'est que cette requête dans le IN:
Code : Sélectionner tout - Visualiser dans une fenêtre à part
Select ref(p) From LesPBases p Where p.mat = (Select ref(m) From LesMatieres m Where m.nom = 'bois')
Renvoie une liste de références que j'ai besoin d’insérer dans la boucle. Le seul problème c'est que lorsque j’exécute cette procédure j'ai une erreur: Oracle me dit qu'il attend une référence alors qu'il reçoit un type char. Je pense donc que la procédure PL/SQL fait une conversion implicite, c'est pourquoi j'ai vu qu'il existe un mot clé en PL qui permet d’éviter de convertir une référence : NOTYPE, mais je n'ai pas très bien compris comment on l'utilise et encore moins dans une boucle.

Pourriez vous m'aider svp?

Merci d'avance