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 !
ça m'affiche ces erreurs :
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; /
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...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
Merci pour votre Temps et votre aide à priori .. :]
Partager