Bonjour,
je desirerai concatener un sensemble de valeurs afin d'avoir a la fin une chaine pour l'executer en tant que trigger.
voila le code

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
create or replace procedure generer(photo VARCHAR2 default NULL,code VARCHAR2 default NULL,t VARCHAR2 default NULL,
Key VARCHAR2 default NULL,date_modif VARCHAR2 default NULL,diffusion VARCHAR2 default NULL,service VARCHAR2 default NULL,user VARCHAR2 default NULL,pass VARCHAR2 default NULL)
IS
trigger_diffusion VARCHAR(300) ;
diff BOOLEAN ;
diffusion VARCHAR(20);
service VARCHAR(20);
begin
trigger_diffusion :='CREATE OR REPLACE TRIGGER trigger_diffusion BEFORE UPDATE OR INSERT ON PERSONNES FOR EACH ROW  DECLARE  diff BOOLEAN ; 
diff:=true ;
 
BEGIN ';
 
 
trigger_diffusion:= trigger_diffusion||' if ( :new.diffphoto = 1 ) then diff:=true else diff:=false; end if;end if ; update '||t||'@'||service||' set '||diffusion||'=:'||diff||' where  substr('||key||',1,(length('||key||')-1)= :new.id_personne';
 
dbms_output.put_line(trigger_diffusion) ;
end;
le prob c'est qu'il ne veut pas concatener les valeurs des diff et diffusion
voila l'erreur :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
PL/SQL: Compilation unit analysis terminated
PLS-00410: champs en double interdits dans RECORD ou TABLE