Bonjour,
J'essaie d'utiliser les fonctions 'for' et 'loop' afin d'effectuer un comptage d'occurrences de tables avant et après nettoyage de celles-ci.
J'utilise le script suivant avec la table qui s'appelle 'cpt_purge' et les champs qui s'appellent 'nomtable' (assez explicite) et 'nbenrav' (nombre d'enregistrements avant) :
Il y a une erreur sur le nom de la table:
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11 declare t_nbrenr number; begin for coltab in (select nomtable from cpt_purge order by nomtable) loop select count(*) into t_nbrenr from coltab; update cpt_purge set nbenrav=t_nbrenr where nomtable=coltab; end loop; end; /
Je n'arrive pas à voir ce qui gêne, et je ne sais pas comment indiquer le nom de la table dans la clause 'where' de l''update'.Error report:
ORA-06550: Ligne 7, colonne 40 :
PL/SQL: ORA-00942: Table ou vue inexistante
ORA-06550: Ligne 7, colonne 5 :
PL/SQL: SQL Statement ignored
ORA-06550: Ligne 8, colonne 62 :
PLS-00382: expression du mauvais type
06550. 00000 - "line %s, column %s:\n%s"
*Cause: Usually a PL/SQL compilation error.
*Action:
Des collègues m'ont émis l'idée d'utiliser la clause 'EXECUTE IMMEDIATE' que j'ai rajouté devant l'update, mais sans résultat.
Merci pour votre aide.
Cordialement,
Olivier
Partager