IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Sybase Discussion :

[ASE][T-SQL]Message d'erreur pendant INSERT


Sujet :

Sybase

  1. #1
    Membre à l'essai
    Inscrit en
    Mars 2006
    Messages
    12
    Détails du profil
    Informations forums :
    Inscription : Mars 2006
    Messages : 12
    Points : 10
    Points
    10
    Par défaut [ASE][T-SQL]Message d'erreur pendant INSERT
    C'est encore le débutant en SYBASE

    J'ai le message d'erreur suivant


    Server Message: Number 3606, Severity 10
    Server 'DWH', Line 1:
    Arithmetic overflow occurred.




    Quand je lance la requête suivante :

    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
     
    insert into #MKT_EFFEC_PREC
    	select 
    		A.CLI_ORIGINE,
    	    	A.ANNEE,
       		A.MOIS,
    		A.PSU_CODE,
    		A.FTP_CODE,
    		0,
    		0,
    		sum(B.FAC_CA),
    		0,
    		0,
    		sum(B.FAC_VOL)
    	from 
    		#MKT_EFFEC_PREC A, #MKT_EFFEC_PREC B
    	where 
    		A.CLI_ORIGINE=B.CLI_ORIGINE
    		and A.ANNEE=B.ANNEE
    		and A.PSU_CODE=B.PSU_CODE
    		and A.FTP_CODE=B.FTP_CODE
    		and B.MOIS<=A.MOIS
    	group by A.CLI_ORIGINE, A.ANNEE, A.MOIS,A.PSU_CODE,A.FTP_CODE
    que signifie ce message d'erreur et quel est le remède ?

    Merci

    Edit :

    Pour info avant l'insert, je lance la commande suivante :

    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
    24
    25
    26
    27
    28
    29
     
    create table #MKT_EFFEC_PREC
    	(
    		CLI_ORIGINE		varchar(6),
    	    	ANNEE			int,
    	   	MOIS			int,
    		PSU_CODE		char(4),
    		FTP_CODE		char(4),
    		FAC_CA			money,
    		FAC_CA_PREC		money,
    		FAC_CA_CUMULE		money,
    		FAC_VOL			numeric(30,2),	
    		FAC_VOL_PREC		numeric(30,2),
    		FAC_VOL_CUMULE		numeric(30,2)
    	)
     
    	insert into #MKT_EFFEC_PREC
    	select 'MDP',ANNEE,MOIS,PSU_CODE,FTP_CODE,sum(FAC_CA),sum(FAC_CA_PREC),0,sum(FAC_VOL),sum(FAC_VOL_PREC),0 from #LISTE_CLIENTS where CLI_ORIGINE='M'
    	group by PSU_CODE,ANNEE,MOIS,FTP_CODE,FTP_CODE,CLI_ORIGINE
     
     
    	insert into #MKT_EFFEC_PREC
    	select 'LP',ANNEE,MOIS,PSU_CODE,FTP_CODE,sum(FAC_CA),sum(FAC_CA_PREC),0,sum(FAC_VOL),sum(FAC_VOL_PREC),0 from #LISTE_CLIENTS where CLI_ORIGINE='P'
    	group by PSU_CODE,ANNEE,MOIS,FTP_CODE,CLI_ORIGINE
     
     
    	insert into #MKT_EFFEC_PREC
    	select 'Groupe',ANNEE,MOIS,PSU_CODE,FTP_CODE,sum(FAC_CA),sum(FAC_CA_PREC),0,sum(FAC_VOL),sum(FAC_VOL_PREC),0 from #LISTE_CLIENTS where CLI_ORIGINE in ('P','M','N')
    	group by PSU_CODE,ANNEE,MOIS,PSU_CODE,CLI_ORIGINE

  2. #2
    Membre chevronné

    Profil pro
    Inscrit en
    Janvier 2006
    Messages
    1 307
    Détails du profil
    Informations personnelles :
    Âge : 64
    Localisation : Suisse

    Informations forums :
    Inscription : Janvier 2006
    Messages : 1 307
    Points : 1 828
    Points
    1 828
    Par défaut
    A priori ce message veux dire que le code essaie d'insérer une valeur numerique dans une colonne qui est trop petite.

    Le problème vient certainement des deux fonctions sum(), bien que la taille des colonnes (numeric(30,2)) semble bien assez grandes. Il faudrait analyser les inserts initiaux - je suspecte qu'il y ai un ou plusieurs produits cartésiens, et que les valeurs que vous voullez sommer sont déjà très grandes (et fausses!)

    Je vous suggère de faire un select de la table en question pour voir ce qui a été inséré par vos commandes initiales.

    Michael
    Michael Peppler
    Membre de TeamSybase - www.teamsybase.com

    "A successful [software] tool is one that was used to do something undreamed of by its author." -- S. C. Johnson

  3. #3
    Membre à l'essai
    Inscrit en
    Mars 2006
    Messages
    12
    Détails du profil
    Informations forums :
    Inscription : Mars 2006
    Messages : 12
    Points : 10
    Points
    10
    Par défaut
    J'ai exécuté uniquement le select sans l'ordre INSERT et cela me retourne le meme message d'erreur.

    Donc le problème ne vient pas de l'insertion.

    De plus j'ai vérifié ma table initiale et meme en sommant toutes les valeurs on ne dépassera jamais une valeur dépassant les 30 chiffres.

  4. #4
    Membre chevronné

    Profil pro
    Inscrit en
    Janvier 2006
    Messages
    1 307
    Détails du profil
    Informations personnelles :
    Âge : 64
    Localisation : Suisse

    Informations forums :
    Inscription : Janvier 2006
    Messages : 1 307
    Points : 1 828
    Points
    1 828
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    select convert(float, sum(...)) from ...
    pour voir quelle valeurs sont réellements générées.

    Michael
    Michael Peppler
    Membre de TeamSybase - www.teamsybase.com

    "A successful [software] tool is one that was used to do something undreamed of by its author." -- S. C. Johnson

Discussions similaires

  1. DateTimePicker requete SQL message d'erreur-> invalide token
    Par fifi_dz dans le forum Bases de données
    Réponses: 2
    Dernier message: 02/05/2011, 12h52
  2. [CS3] Message d'erreur pour insertion flash
    Par bernard26000 dans le forum Dreamweaver
    Réponses: 0
    Dernier message: 01/12/2010, 19h14
  3. Messages d'erreur pendant la création d'un fichier texte
    Par FrançoiseB dans le forum Delphi
    Réponses: 5
    Dernier message: 25/07/2007, 16h11
  4. inportation *.sql = message d' erreur
    Par Blaireau dans le forum Outils
    Réponses: 3
    Dernier message: 04/02/2007, 22h14
  5. [VBA-E+SQL] Message d'erreur et excel qui plante
    Par Deejoh dans le forum Macros et VBA Excel
    Réponses: 5
    Dernier message: 16/02/2006, 16h28

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo