Se connecter / S'enregistrer
Votre question

[Mysql] Procédure stockée

Tags :
  • proc
  • Jquery
  • procédure
  • MySQL
  • Programmation
Dernière réponse : dans Programmation
14 Mars 2012 00:04:33

Salut, encore moi ^^
J'ai un soucis dans une procedure stockée:

  1. DELIMITER $$
  2.  
  3. DROP PROCEDURE IF EXISTS `Compagnon`.`T_ligneZero`$$
  4. CREATE DEFINER=`root`@`localhost` PROCEDURE `T_ligneZero`(iS_date VARCHAR(7))
  5. BEGIN
  6. DECLARE MoisID INT;
  7. DECLARE LibMoisAnnee VARCHAR(7);
  8. DECLARE Code VARCHAR(5);
  9. DECLARE NomPre VARCHAR(255);
  10. DECLARE Metier VARCHAR(255);
  11. DECLARE NbRepas INT;
  12. DECLARE NbNuit INT;
  13. DECLARE AidePension DOUBLE;
  14. DECLARE Avance DOUBLE;
  15. DECLARE Charge DOUBLE;
  16. DECLARE Commentaire text;
  17. DECLARE Montant DOUBLE;
  18. DECLARE TYPE VARCHAR(50);
  19. DECLARE rs CURSOR FOR
  20. SELECT mois.*,Montant,TYPE FROM V_ligneMoisSansVersement AS mois
  21. LEFT JOIN V_SommeVersement AS vers ON mois.MoisID = vers.IDMois
  22. WHERE mois.LibMoisAnnee = iS_date
  23. ORDER BY MoisID;
  24. OPEN rs;
  25.  
  26. rs: LOOP
  27. FETCH rs INTO MoisID,LibMoisAnnee,Code,NomPre,Metier,NbRepas,NbNuit,AidePension,Avance,Charge,Commentaire,Montant,TYPE;
  28.  
  29. IF Montant = NULL THEN
  30. SET Montant :=1;
  31. END IF;
  32. INSERT INTO Compagnon.LigneTmp (MoisID,LibMoisAnnee,Code,Montant,TYPE) VALUES (MoisID,LibMoisAnnee,Code,Montant,TYPE);
  33.  
  34. SELECT * FROM Compagnon.LigneTmp;
  35. END LOOP;
  36.  
  37. CLOSE rs;
  38.  
  39. END$$
  40.  
  41. DELIMITER ;

J'ai obligé la colonne montant de LigneTmp à être not null avec une valeur par défaut = 0
L'ennui c'est que quand je fais tourner la procedure, j'ai une erreur ;
Column Montant cannot be null
Une petite aide de votre part?

Autres pages sur : mysql procedure stockee

a c 232 L Programmation
14 Mars 2012 08:44:30

Salut,

Plutôt que :
  1. IF Montant = NULL THEN
  2. SET Montant :=1;
  3. END IF;


Ca serait pas plutôt
  1. IF Montant IS NULL THEN
  2. SET Montant :=1;
  3. END IF;
14 Mars 2012 13:38:33

oui
Désolé j'ai travaillé trop tard et j'etais un peu trop fatigué pour trouver l'erreur ;) 
Merci a toi
Tom's guide dans le monde
  • Allemagne
  • Italie
  • Irlande
  • Royaume Uni
  • Etats Unis
Suivre Tom's Guide
Inscrivez-vous à la Newsletter
  • ajouter à twitter
  • ajouter à facebook
  • ajouter un flux RSS