Bonjour,
je débute en PL/SQL donc j'aimerais votre aide
Je voudrais faire une vérification qui controle des champs avant l'insertion

Mes conditions ne sont pas reconnu.
Je vous joins mon code:
les erreurs sont au niveau du premier if et de ecpxpay qui n'est pas reconnu mais c'est encore autre chose.
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
22
23
24
25
26
27
28
29
create or replace
PROCEDURE DL_CK_ADRESSE  is
adr1 varchar2(35);
reg varchar2(35);
cod varchar2(35);
vil varchar2(35);
pays varchar2(30);
cursor verif is select ad1xcl2, copxcl2, regxcl2, vilxcl2 from cl2xres, payxres where cl2xres.payxcl2 = payxres.codxpay
and not regexp_like(regxcl2,(erexpay)) or not regexp_like(copxcl2,(ecpxpay));
 
BEGIN
 
/*verification de l'adresse, de la région, du pays et du code postal*/
  open verif;
    loop
     fetch verif into adr1, cod, reg, vil;       
     if adr1 is null then  /*champs obligatoire*/
        dbms_output.put_line( adr1|| cod|| reg|| vil + ':Adresse manquante' );
     elsif vil is null then /*champs obligatoire*/  
        dbms_output.put_line( adr1|| cod|| reg|| vil + ':Ville manquante' );
     elsif (cod <> regexp_like(cod,(ecpxpay))) then /*vérification du code postal obligatoire dans certains pays*/
      dbms_output.put_line( adr1|| cod|| reg|| vil + ':erreur code postal' );
     elsif(reg <> regexp_like(reg,(erexpay))) then /*vérification de la région obligatoire dans certains pays*/
        dbms_output.put_line( adr1|| cod|| reg|| vil + ':erreur code region' );
     end if;
     Exit When verif%NOTFOUND;
    end loop;
  close verif;
END DL_CK_ADRESSE;
Merci