bonjour,

j'essaie de copier le contenu d'une variable de type %ROWTYPE dans une autre mais pas moyen . Le second %ROWTYPE est identique au premier, à l'exception près qu'il y a une colonne de plus:

TABLE historique
id, etat_p, mnt_p, (plus de 50 colonnes) ...

TABLE historique_tmp
mêmes colonnes que la table historique, mais avec en plus la colonne qui suit:
distribution number;

Ça me donne une erreur à la compilation:
PLS-00382: expression is of wrong type

C'est tiré d'une procédure stockée sur Oracle 11g:
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
 
CURSOR cur_historique IS 
select * from historique;
 
l_historique historique%ROWTYPE;
l_historique_tmp historique_tmp%ROWTYPE;
 
l_aleatoire number;
 
OPEN cur_historique;
LOOP
  FETCH cur_historique INTO l_historique; 
  EXIT WHEN cur_historique%NOTFOUND;
 
  l_aleatoire := FCT_ALEATOIRE();
  l_historique_tmp := l_historique;  -- PLS-00382: expression is of wrong type
  l_historique_tmp.distribution := l_aleatoire;
 
  INSERT INTO historique_tmp t VALUES l_historique_tmp;
END LOOP;
CLOSE cur_historique;