Salut à tous,

Je commence par vous décrire le problème:
Je travaille sur la table client suivante:
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
 
create table client(
	client_id number,
	client_last_name varchar2,
	client_first_name varchar2(20),
	client_address varchar2(40),
	client_tel number,
	client_mail varchar2(30),
	client_ca number,
	client_category varchar2(20),
	constraint pk_client primary key(client_id)
);
où client_ca est le chiffre d'affaire du client.client_category est la catégorie du client qui varie selon le chiffre d'affaire.
Je voulais créer un trigger qui met à jour le champs client_category à chaque insertion d'un nouveau client(qui se fait à l'aide d'une procédure).

Voici mon 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
19
20
21
22
23
24
25
26
27
28
29
30
31
32
 
/*Procédure d'ajout d'un client*/
create or replace procedure add_client(client_id number,client_last_name varchar2,client_first_name varchar2,client_address varchar2,client_tel number,client_mail varchar2,client_ca number,client_category varchar2) is
begin
insert into client values(client_id,client_last_name,client_first_name,client_address,client_tel,client_mail,client_ca,client_category);
commit;
end;
 
/*Procédure de maj de la catégorie*/
create or replace procedure maj_client_category(arg_client_id number) is
	v_client_category client.client_category%type;
begin
	select client_category into v_client_category from client where client_id=arg_client_id;
	if (v_client_category < 5000) then
	update client set client_category='passager';
	elsif (v_client_category > 10000) then
	update client set client_category='potentiel';
	else
	update client set client_category='important';
	end if;
end;
/
 
/*Trigger qui appelle la procédure précédente à la suite de chaque insertion d'un client*/
create or replace trigger tr_after_add_client
after insert 
on client
for each row
begin
	maj_client_category(:new.client_id);
end;
/
lorsque je tente d'exécuter la procédure d'insertion, je me trouve avec l'erreur suivante:

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
 
ORA-00900: instruction SQL non valide
Comment faire????