Bonjour à vous tous ...
Comme le titre l'indique , mon problème est le faite d'afficher une commande d'un client en suivant le modele suivant :

Nom de client:
'Adresse client:
N° de Commande:
--------------------------------------------------------------------
Designation: |Prix Unitaire: |Quantité: |Montant:




Total Commande:


et on doit le faire par un curseur.
voilà la base de donnée :

Clients( Code,Nom,Adresse,Tel)
Commande(Ncmd,Date,#Code)
Produits(Ref,Desig,Pu,Stock)
L_cmd(#Ncmd,#Ref,Qte)

j'ai fait un petit bout de code mais ça marche pas :s .. si vous pouvez le rectifier svp !
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
 
set serveroutput on;
declare 
CURSOR c IS 
SELECT cl.Nomclt,cl.Adresse,Nmcd.Nmcd,p.Reef,p.Pu,lcmd.Qte,(lcmd.Qte*p.Pu) as 'montant' FROM Clients cl,Commande cmd,llcmd lcmd,Produits p  WHERE cl.Code=cmd.Code AND lcmd.Nmcd=cmd.Ncmd AND p.Reef=lcmd.Reef AND cmd.Nmcd=&n;
c1 c%rowtype; 
begin 
open c;
DBMS_OUTPUT.PUT_LINE('Nom de client:'||c1.Nomclt||);
DBMS_OUTPUT.PUT_LINE('Adresse client:'||c1.Adresse||);
DBMS_OUTPUT.PUT_LINE('N° de Commande:'||c1.Ncmd||); 
loop
fetch c into c1;
DBMS_OUTPUT.PUT_LINE('--------------------------------------------------------------------');
DBMS_OUTPUT.PUT_LINE('Designation:      |Prix Unitaire:      |Quantité:     |Montant:    ');
DBMS_OUTPUT.PUT_LINE('*'||c1.Reef||'    |'||c1.Pu||'         |'||c1.Qte||'  |'||c1.montant||);
exit when c%notfound;
end loop;
close c;
select sum(p.pu*lcmd.qte) as 'tot' from produits p,llcmd lcmd where lcmd.reef=p.reef;
DBMS_OUTPUT.PUT_LINE(' Total Commande:'||tot||);
end; 
/
ça m'affiche ces erreurs :
ancien 3 : SELECT cl.Nomclt,cl.Adresse,Nmcd.Nmcd,p.Reef,p.Pu,lcmd.Qte,(lcmd.Qte*p.Pu) as 'montant' FROM Clients cl,Commande cmd,llcmd lcmd,Produits p WHERE cl.Code=cmd.Code AND lcmd.Nmcd=cmd.Ncmd AND p.Reef=lcmd.Reef AND cmd.Nmcd=&n;
nouveau 3 : SELECT cl.Nomclt,cl.Adresse,Nmcd.Nmcd,p.Reef,p.Pu,lcmd.Qte,(lcmd.Qte*p.Pu) as 'montant' FROM Clients cl,Commande cmd,llcmd lcmd,Produits p WHERE cl.Code=cmd.Code AND lcmd.Nmcd=cmd.Ncmd AND p.Reef=lcmd.Reef AND cmd.Nmcd=100;

SELECT cl.Nomclt,cl.Adresse,Nmcd.Nmcd,p.Reef,p.Pu,lcmd.Qte,(lcmd.Qte*p.Pu) as 'montant' FROM Clients cl,Commande cmd,llcmd lcmd,Produits p WHERE cl.Code=cmd.Code AND lcmd.Nmcd=cmd.Ncmd AND p.Reef=lcmd.Reef AND cmd.Nmcd=100;
*

ERREUR à la ligne 3 :
ORA-06550: Ligne 3, colonne 79 :
PL/SQL: ORA-00923: mot-clé FROM absent à l'emplacement prévu
ORA-06550: Ligne 3, colonne 1 :
PL/SQL: SQL Statement ignored
ORA-06550: Ligne 7, colonne 51 :
PLS-00103: Symbole ")" rencontré à la place d'un des symboles suivants :
( - + case mod new null <identificateur>
<identificateur entre guillemets> <variable bind> avg count
current max min prior sql stddev sum variance execute
ORA-06550: Ligne 8, colonne 53 :
PLS-00103: Symbole ")" rencontré à la place d'un des symboles suivants :
( - + case mod new null <identificateur>
<identificateur entre guillemets> <variable bind> avg count
current max min prior sql stddev sum variance execute
ORA-06550: Ligne 9, colonne 50 :
PLS-00103: Symbole ")" rencontré à la place d'un des symboles suivants :
( - + case mod new null <identificateur>
<identificateur entre guillemets> <variable bind> avg count
current max min prior sql stddev sum variance execute
ORA-06550: Ligne 14, colonne 93 :
PLS-0010
J'ai vraiment besoin de l'aide .. j'ai pas trouvé un exemple de ce type de curseur .. et je dois rendre ce travail dimanche...

Merci pour votre Temps et votre aide à priori .. :]