Bonjour,
j'ai une erreur 1555 qui se produit dans un code PL/SQL qui utilise une table GLOBAL TEMPORARY ON COMMIT PRESERVE ROWS.
CREATE GLOBAL TEMPORARY TABLE TMP_MESSAGE_SESSION
(
MESSAGE VARCHAR2(1000 BYTE)
)
ON COMMIT PRESERVE ROWS
NOCACHE;
Le code pl/sql a le deroulement suivant:
/* remplissage de la table TMP_MESSAGE_SESSION par des données séparées par le caractere "|" */
/* Validation de ces insertions */
Commit;
For rec In (Select * from tmp_message_session) Loop
/* Lecture de données dans d'autres tables */
/* Calcul de statistiques et insertion dans une autre table de ces chiffres */
/* Validation de l'insertion */
Commit;
End Loop;
Apres avoir placé des traces dans le code pour savoir où se produit l'erreur ORA 1555, il s'avére que c'est lors du parcours de la table TMP_MESSAGE_SESSION. Or cette table n'est pas mise à jour dans la boucle et les dernières mises à jour ont été validées avant le parcours.
Je n'ai pas cette erreur si la table TMP_MESSAGE_SESSION est une table "standard".
Est ce que quelqu'un peut m'aider ou m'expliquer comment fonctionne la validation des données stockées dans une table de type "TEMPORARY"?
Merci de votre réponse.