Bonjour,
Je veux écrire une procédure PL/SQL dans laquelle j'accède à des champs d'un rowtype passé en paramètre de manière dynamique (les noms des champs sont issus d'une table).
Le code ressemble à celui ci :
Le problème est qu'en SQL dynamique, les variables ROWTYPE ne sont pas connues, il faut donc que je trouve un moyen d'accéder aux différents champs du rowtype sans connaitre leur nom à priori...
Code : Sélectionner tout - Visualiser dans une fenêtre à part 
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19PROCEDURE "COMPARE_CHAMPS" ( p_anciennes_valeurs IN MATABLE%ROWTYPE, p_nouvelles_valeurs IN MATABLE%ROWTYPE ) IS ancienneVal VARCHAR(250); nouvelleVal VARCHAR(250); BEGIN FOR maligne in (SELECT * FROM MATABLE_COLONNES) LOOP -- Pour chaque colonne à surveiller, on regarde si la valeur a changée. EXECUTE IMMEDIATE 'SELECT p_ancien_trade.'||TMCRow.TMC_NOM||' FROM DUAL' INTO ancienneVal; EXECUTE IMMEDIATE 'SELECT p_nouveau_trade.'||TMCRow.TMC_NOM||' FROM DUAL' INTO nouvelleVal; IF ancienneVal<>nouvelleVal THEN -- La valeur a changé, on insère la modif. END IF; END LOOP; END COMPARE_TRADES;
Quelqu'un a t il une idée?
D'avance merci

 

 
		
		 
         
			
			

 
   


 (Oracle 10g - PL/SQL) Accès dynamique à un %ROWTYPE
 (Oracle 10g - PL/SQL) Accès dynamique à un %ROWTYPE
				 Répondre avec citation
  Répondre avec citation

 
  
  
 
 
 
 
			 
  
						




 
			
Partager