[ORACLE - TEMPORARY - ORA 1555] Snapshot trop vieux sur une temporary

Snapshot trop vieux sur une temporary [ORACLE - TEMPORARY - ORA 1555] - SQL/NoSQL - Programmation

Marsh Posté le 19-06-2008 à 14:37:11    

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.

Reply

Marsh Posté le 19-06-2008 à 14:37:11   

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed