bonjour ,
je travaille avec les procédures stockée sur SQL server 2008 , mais quand je veux executer l'une de mes procedure ,il m'affiche l'erreur suivant :
Une erreur de dépassement arithmétique s'est produite lors de la conversion de expression en type de données int.
USE [Entreprise]
GO
/****** Object: StoredProcedure [dbo].[Cos_phi_calculé] Script Date: 06/12/2010 11:21:50 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
ALTER procedure [dbo].[Cos_phi_calculé]
as
select dbo.CosPhi_calcule(consomm_HC,consomm_HP,consomm_HN,consomm_energie_reactive)
from dbo.Facture
En effet j'ai une fonction qui s'appelle [dbo].[CosPhi_calcule] qui retourne une valeur de type float ,quand je veux le récupérer avec ma procédure stockée [dbo].[Cos_phi_calculé] il m'afficher l'erreur précédemment présenté.
ALTER FUNCTION [dbo].[CosPhi_calcule]
(
@consomm_HC int,
@consomm_HP int,
@consomm_HN int,
@consoER int
)
RETURNS float
AS
BEGIN
declare @resultat float
set @resultat=(@consomm_HC+@consomm_HP+@consomm_HN)/(SQRT(((@consomm_HC+@consomm_HP+@consomm_HN)*(@consomm_HC+@consomm_HP+@consomm_HN)) + (@consoER * @consoER)))
return @resultat
END
dans les paramètre de ma procédure je trouve ca:
<image>http://www.easy-upload.net/fichier.php?fichier=2010612123640</image>
comme vous voyer ma procédure retourne toujours une valeur de type Integer ,et je pense que c'est la seul raison pour la quelle elle m'affiche le message de dépassement .
alors j'ai modifier le type de retour de ma fonction et j'ai mis Int au lieu de float pour que ma procédure puisse capturer la valeur de la fonction mais malheureusement en vain, elle m'affiche la même erreur.
j'ai aussi ce code la ,
USE [Entreprise]
GO
[B]DECLARE @return_value int[/B]
EXEC @return_value = [dbo].[Cos_phi_calculé]
SELECT 'Return Value' = @return_value
GO
la aussi j'ai remplacer Int par float pour remédier au problème de conversion mais en vain
Alors est ce qu'il y a un moyen pour modifier le type de retour de ma procédure ,le rendre float au lieu de int ,parce que INT est donné par default par SQL server
j'espère que j'ai bien expliqué mon problème et vos remarque seront les bienvenus
Merci d'avance
[T-SQL]Une erreur de dépassement arithmétique s'est produite
× Après avoir cliqué sur "Répondre" vous serez invité à vous connecter pour que votre message soit publié.
× Attention, ce sujet est très ancien. Le déterrer n'est pas forcément approprié. Nous te conseillons de créer un nouveau sujet pour poser ta question.