ORACLE: accéder à une table dont le nom est dans une table
Bonjour,
J'ai une dizaine de tables d'erreurs dans ma base de données oracle.
Je voudrais chaque matin recevoir un mail qui liste toutes les données en erreur de la nuit.
Pour cela j'ai créé une procédure stockée qui va rechercher dans chaque tables les données en erreur.
J'ai donc tout d'abord fait un curseur comme suit :
Code:
1 2 3 4 5 6 7
|
FOR C IN (SELECT TABLE_NAME
FROM ALL_TABLES
WHERE TABLE_NAME like ERR_%')
LOOP
INSTRUCTION
END LOOP; |
Grâce à cette boucle j'obtiens la liste de mes tables d'erreur.
Ensuite je voudrais table par table lister les lignes en erreur.
Mais comment faire?
du sql dynamique?
Mais comment afficher mon résultat si je fais comme suit:
Code:
1 2 3
|
le_sql:='SELECT * FROM :1 WHERE FLAG='ERR''
EXECUTE IMMEDIATE le_sql using c.table_name |
Mais cela me semble bizarre et je ne vois pas ensuite comment récupérer les données de ma requête.
Quelqu'un pourrait il m'aider?Merci