Bonjour,

Je débute en PL/SQL, et j'aimerais mettre en place une procédure qui prend en paramètre une chaine de caractère. Mais ça ne fonctionne pas et je n'ai aucune idée pour debugger. Je vous remercie de votre aide



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
SET SERVEROUTPUT ON
CREATE PROCEDURE maj_vente(jobi in varchar2(20)) is
Nom1 varchar2(20);
Prenom1 varchar2(20);
begin
 
select FIRST_NAME into Nom1, LAST_NAME into Prenom1 from hr.EMPLOYEES where JOB_ID=jobi;
dbms_output.put_line('Nom et prenom correspondant à ce JOD_ID est  :' || Nom1|| '-->'|| Prenom1);
EXCEPTION
WHEN NO_DATA_FOUND THEN
dbms_output.put_line('Nom et prenom correspondant à ce JOD_ID est :');
WHEN TO_MANY_ROW THEN
dbms_output.put_line('il y a plusieurs lignes');
END;
 
 
/
EXECUTE  maj_vente('IT_PROG');

Voici la log



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
select FIRST_NAME into Nom1, LAST_NAME into Prenom1 from hr.EMPLOYEES where JOB_ID=jobi;
dbms_output.put_line('Nom et prenom correspondant à ce JOD_ID est  :' || Nom1|| '-->'|| Prenom1);
EXCEPTION
WHEN NO_DATA_FOUND THEN
dbms_output.put_line('Nom et prenom correspondant à ce JOD_ID est :');
WHEN TO_MANY_ROW THEN
dbms_output.put_line('il y a plusieurs lignes');
END;
Rapport d'erreur :
ORA-00955: name is already used by an existing object
00955. 00000 -  "name is already used by an existing object"
*Cause:    
*Action:
Erreur commençant à la ligne 19 de la commande :
EXECUTE  maj_vente('IT_PROG')
Rapport d'erreur :
ORA-06550: line 1, column 8:
PLS-00905: object SYSTEM.MAJ_VENTE is invalid
ORA-06550: line 1, column 8:
PL/SQL: Statement ignored
06550. 00000 -  "line %s, column %s:\n%s"
*Cause:    Usually a PL/SQL compilation error.
*Action: