PL/SQL, problème dans un curseur avec un insert
Bonjour,
J'ai deux tables: "session_client" et "fichier"
Je crée un curseur qui est le résultat d'une requête sur "session_client" :
Code:
1 2
|
cursor c_sessions is select * from session_client where ... ; |
Puis je parcours mon cuseur:
Code:
1 2 3
|
for c_l in c_sessions
loop |
A ce moment j'aimerais insérer dans la table "fichier", un champ de mon tuple courant de mon curseur seulement si celui-ci n'est pas déjà présent dans la table "fichier".
J'ai donc écris ceci:
Code:
1 2 3 4 5
|
INSERT INTO fichier (lib_fichier)
SELECT c_l.fichier FROM c_sessions
WHERE c_l.fichier NOT IN
(SELECT lib_fichier FROM fichier); |
Mais cela ne fonctionne pas! J'ai l'erreur suivante:
PL/SQL: ORA-00942: Table ou vue inexistante
en me désigant mon instruction "FROM c_sessions".
Si je ne peux pas utiliser un curseur dans ma clause FROM, je ne vois pas comment résoudre mon problème!
Quelqu'un a-t-il une solution susceptible de m'aider? Ou une explication? Merci d'avance! :)