erreur de chaine de charactere sql dynamique

erreur de chaine de charactere sql dynamique - SQL/NoSQL - Programmation

Marsh Posté le 07-12-2008 à 17:44:13    

Bonjour,
 
Je souhaite crée une requete SQL dynamique dans une procedure, lorsque je compile il n'y a pas d'erreur mais lors de l'execution une erreur sur la taille de la chaine de charactere aparait, pourriez vous m'aidez?
 
Je suis sous Oracle 11g, en utilisant SQL*PLUS sur Ubuntu Intrepid.
 
voici le code :

Code :
  1. CREATE OR REPLACE Package PKS_Tableau Is
  2. procedure TableauMiParcours (ar1 MATCH.ALLERRETOUR%type, domicileLocale1 int);
  3. end PKS_Tableau;
  4. /
  5. create or replace package body PKS_Tableau is
  6. procedure TableauMiParcours (ar1 MATCH.ALLERRETOUR%type, domicileLocale1 int) is
  7. ar MATCH.ALLERRETOUR%type;
  8. domicileLocale int;
  9. equipe MATCH.EQUIPELOCALE%type;
  10. point MATCH.POINTSLOCAUX%type;
  11. malus MATCH.MALUSLOCAUX%type;
  12. scoreFinal MATCH.LOCAUXSCOREFINALMATCH%type;
  13. scoreMiTemps MATCH.LOCAUXSCOREMITEMPS%type;
  14. debSaison SAISONFOOT.ANDEBSAISON%type;
  15. finSaison SAISONFOOT.ANFINSAISON%type;
  16. sens char(1);
  17. Requete VARCHAR2(30000);
  18. begin
  19. domicileLocale := domicileLocale1;
  20. ar := ar1;
  21. If domicileLocale = 1 then
  22.  equipe := 'equipelocale';
  23.  sens :='>';
  24.  point := 'POINTSLOCAUX';
  25.  malus := 'MALUSLOCAUX';
  26.  Requete := 'create or replace view TAD AS select :1, sum(:2)- sum(:3) AS POINTS_DOMICILE_ALLER from match where ALLERRETOUR = :4 AND matchjoue= 1 group by :1;';
  27.  EXECUTE IMMEDIATE Requete using equipe,point,malus,ar;
  28. end If;
  29. end;
  30. end PKS_Tableau;
  31. /
  32. EXECUTE PKS_Tableau.TableauMiParcours('A',1);


 
 et le message d'errreur :
 

Code :
  1. Package cree.
  2. Corps de package cree.
  3. BEGIN PKS_Tableau.TableauMiParcours('A',1); END;
  4. *
  5. ERREUR a la ligne 1 :
  6. ORA-06502: PL/SQL : erreur numerique ou erreur sur une valeur: tampon de chaine de caracteres trop petit
  7. ORA-06512: a "PSYRIO.PKS_TABLEAU", ligne 22
  8. ORA-06512: a ligne 1


 
Pourriez vous m'aidez je dois rendre le projet assez rapidement et cette erreur me bloque depuis 4 jours?

Reply

Marsh Posté le 07-12-2008 à 17:44:13   

Reply

Marsh Posté le 08-12-2008 à 20:41:31    

tu es bien sûre que ça plante sur le EXECUTE IMMEDIATE?
 
met des instructions  
DBMS_OUTPUT.PUT_LINE('texte');  
 
afin de voir jusqu'ou ça va. Vérifie également la valeur de tous tes paramètres. ça devrait te donner une idée.
 
Malheureusement, vu le peu d'informations que tu donnes sur l'erreur, je ne saurais t'en dire beaucoup plus.
 
En regardant un peu plus ton code, il a l'air ultra foireux.
Si  je comprends bien, la valeur de type "MATCH.POINTSLOCAUX" est de type numérique étant donné que tu essayes de faire une somme dessus.  
Or dans ton code, tu tentes d'assigner du texte à ta variable "point".  
Tu es sûre que tu as bien tout compris?


Message édité par moi23372 le 08-12-2008 à 20:43:10

---------------
quand un homme raisonne mal c'est qu'il n'a pas les données pour raisonner mieux (diderot)
Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed