Quand je crée une t…
 
Notifications 
Reti­rer tout

Quand je crée une table tem­po­raire et que j’y insère des don­nées, après un com­mit ma table est vide !

Posts
Uti­li­sa­teurs
Reac­tions
85  Vu
0
Début du sujet

Je crée une table tem­po­raire avec l’ordre DECLARE GLOBAL TEMPORARY TABLE et je fais des INSERT dedans. Mes don­nées sont visibles et sous-contrôle de vali­da­tion jus­qu’à un COMMIT. Dès lors, toutes les don­nées sont effa­cées comme si j’a­vais fait un ROLLBACK ! C’est à rien y comprendre…

Éti­quettes du sujet
1 Réponse 
0
Début du sujet

Par défaut, l’ac­tion exé­cu­tée sur une table tem­po­raire lors d’un COMMIT est DELETE ALL ROWS (car une fois la tran­sac­tion vali­dée le sys­tème consi­dère qu’on a plus besoin des don­nées tem­po­raires). Si on veut conser­ver les enre­gis­tre­ments, il faut décla­rer la table de la façon suivante :

exec sql
 DECLARE GLOBAL TEMPORARY TABLE BWRBCP
 LIKE BWRBCP
 WITH REPLACE
  ON COMMIT PRESERVE ROWS ; 

Share :