Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
1235 connectés 

  FORUM HardWare.fr
  Programmation
  SQL/NoSQL

  probleme pl/sql ?

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

probleme pl/sql ?

n°1334948
donny3
Posté le 29-03-2006 à 20:47:57  profilanswer
 

Salut,
 
Je dispose d'un table produit et une autre table produit2.
Je veux inserer le contenu de la table produit dans la table produit2.
pour cela j'ai fait un code pl/sql;
 

Code :
  1. declare
  2. tot integer;
  3. cursor prod is select num,desi,prix  from produit;
  4. nuplet prod%rowtype;
  5. zero exception;
  6. begin
  7. select count(*) into tot from produit;
  8. if tot=0 then
  9. raise zero;
  10. else
  11. for nuplet in prod loop
  12. insert into produit2  values(nuplet.num,upper(nuplet.desi),round(nvl(nuplet.prix,0)*6.55));
  13. end loop;
  14. end if;
  15. exception
  16. when zero then insert into produit2 values(0,'Pas de produit',NULL);
  17. end;
  18. /

 

mais quand je le lance j'ai cette erreur;
 

Citation :

 

declare
*
ERREUR à la ligne 1 :
ORA-01438: valeur incohérente avec la précision indiquée pour cette colonne
ORA-06512: à ligne 14

 


 

je n'arrive pas à la comprendre.
car quand ma table produit est vide ma table produit2 se rempli mais quand elle est pleine j'ai cette erreur.
 
Merci.

mood
Publicité
Posté le 29-03-2006 à 20:47:57  profilanswer
 

n°1334954
olivthill
Posté le 29-03-2006 à 20:57:12  profilanswer
 

Je suis un peu étonné de ne pas voir d'instruction fetch, mais c'est peut-être normal.

n°1335071
Beegee
Posté le 29-03-2006 à 22:04:15  profilanswer
 

Tu as beaucoup de données dans la table produit ?
 
Si tu n'en as pas trop, du SQL de base suffit ...
 
insert into produit2
select num,upper(desi),round(nvl(prix,0)*6.55))
from produit;

n°1335130
donny3
Posté le 29-03-2006 à 22:42:01  profilanswer
 

je n'en ai pas beaucoup,
c 'est clair que je pourrai le faire directement avec du sql;
mais je fait sa pour m'entrainer au pl/sql

n°1335471
orafrance
Posté le 30-03-2006 à 12:42:45  profilanswer
 

c'est un problème de structure de table... que donne un DESC produit et DESC produit2.
 
Attention, ton count(*) risque de couter cher pour des requêtes peu performante. Je te conseille plutôt de tester prod%ROWCOUNT ou d'ajouter une variable de test que tu mets à 1 dans la boucle FOR ;)

n°1335558
donny3
Posté le 30-03-2006 à 14:54:05  profilanswer
 

merci en ecoutant tes conseils j'ai regarder le type de ma colonne prix ,c'etait number(3,2) et donc elle ne pouvait pas contenir les nouvelles valeurs si je multipliais par 6.55957.donc j'ai modifier le type en numeric;
 
et sur ce site mon erreur est expliqué aussi
http://www.techonthenet.com/oracle/errors/ora01438.php

n°1335562
orafrance
Posté le 30-03-2006 à 14:58:14  profilanswer
 

très bien ce site :)


Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  SQL/NoSQL

  probleme pl/sql ?

 

Sujets relatifs
Probleme de mise en page[SGBD/SQL] Oracle : PL/SQL, problème tout con
Probleme DIV scrollable dans un TableauProblème avec un onblur...
[résolu] Problème bouton / javascriptProblème de ponctuation ds un fichier texte dynamique ds flash
Problème Validation cssProbleme de cryptage de mot de passe
Probleme pour Modifier mon formulaire[resolu]Problème d'alignement
Plus de sujets relatifs à : probleme pl/sql ?


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR