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

Développement SQL Server Discussion :

Erreur lors de l'exécution d'une procédure stockée


Sujet :

Développement SQL Server

  1. #1
    Membre régulier
    Profil pro
    Inscrit en
    Janvier 2007
    Messages
    472
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2007
    Messages : 472
    Points : 71
    Points
    71
    Par défaut Erreur lors de l'exécution d'une procédure stockée
    Bonjour,

    J'ai une erreur quand j’exécute ma procédure stockée et je n'arrive pas à repérer le problème.

    Voici le code de me procédure :

    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
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    ALTER PROCEDURE [dbo].[usp_MSP_Extract_ActivitiesList]
    (
     @ProjectName NVARCHAR(MAX)
    )
    AS
    BEGIN
    --usp_MSP_Extract_ListeProjet
    --[MSP_GET_ProjectCodeByTask]
    	SET NOCOUNT ON
     
    	SELECT [Restauration_DB].[dbo].[MSP_GET_ProjectCodeByTask1] () AS [CodeProjet], 
    	T.[TASK_ID]
    	INTO #Temp
    	FROM [dbo].[MSP_ASSIGNMENTS]A
    	LEFT JOIN [dbo].[MSP_PROJECTS]P ON A.[PROJ_UID]=P.[PROJ_UID]
    	LEFT JOIN [dbo].[MSP_TASKS]T ON A.[TASK_UID]=T.[TASK_UID]
    	LEFT JOIN [dbo].[MSP_RESOURCES]R ON A.[RES_UID]=R.[RES_UID]
    	LEFT JOIN [dbo].[MSP_RES_CUSTOM_FIELD_VALUES]B ON A.[RES_UID]=B.[RES_UID]
    	LEFT JOIN [dbo].[MSP_CUSTOM_FIELDS]C ON B.[MD_PROP_ID]=C.[MD_PROP_ID]
    	LEFT JOIN [dbo].[MSP_LOOKUP_TABLE_VALUES]D ON B.[CODE_VALUE]= D.[LT_STRUCT_UID]
    	WHERE	p.[PROJ_NAME] =@ProjectName AND
    			D.LT_VALUE_TEXT IS NOT NULL
     
    	--DEBUT - Il faut afficher les projets dans l'ordre de création des tâches
    	SELECT DISTINCT [CodeProjet], 
    	CASE WHEN CHARINDEX('#', [CodeProjet]) > 0 THEN 
    		LEFT([CodeProjet], CHARINDEX('#', [CodeProjet]) - 1)
    	ELSE 
    		CASE WHEN CHARINDEX('-', [CodeProjet]) > 0 THEN 
    			LEFT([CodeProjet], CHARINDEX('-', [CodeProjet]) - 1)
    		ELSE 
    			[CodeProjet]
    		END
    	END AS [CodeOnly],
    	[TASK_ID]
    	INTO #Results
    	FROM #Temp
    	WHERE [CodeProjet] IS NOT NULL
     
    	SELECT [CodeProjet] 
    	FROM (
    		SELECT [CodeProjet], [CodeOnly], MIN([TASK_ID]) as [TASK_ID]
    		FROM #Results
    		GROUP BY [CodeOnly], [CodeProjet] 
    	) o
    	ORDER BY [TASK_ID] ASC
    	--FIN - Il faut afficher les projets dans l'ordre de création des tâches
     
    	DROP TABLE #Results
    	DROP TABLE #Temp
    END
    Et l'erreur est la suivante :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    Subquery returned more than 1 value. This is not permitted when the subquery follows =, !=, <, <= , >, >= or when the subquery is used as an expression.
    The statement has been terminated.
    Avez vous une idée sur le problème .

    Merci

  2. #2
    Rédacteur

    Avatar de SQLpro
    Homme Profil pro
    Expert bases de données / SQL / MS SQL Server / Postgresql
    Inscrit en
    Mai 2002
    Messages
    21 895
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Expert bases de données / SQL / MS SQL Server / Postgresql
    Secteur : Conseil

    Informations forums :
    Inscription : Mai 2002
    Messages : 21 895
    Points : 53 123
    Points
    53 123
    Billets dans le blog
    6
    Par défaut
    Il est probable que ceci :
    Restauration_DB.dbo.MSP_GET_ProjectCodeByTask1 ()
    Soit une fonction table qui renvoie plusieurs lignes.
    D'autre part pourquoi autant de tables temporaires stupidement inutiles et horriblement couteuses ? Vous avez un serveur trop musclé et vous testez sa capacité a encaisser plus de charge que nécessaire ?

    A +

  3. #3
    Membre régulier
    Profil pro
    Inscrit en
    Janvier 2007
    Messages
    472
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2007
    Messages : 472
    Points : 71
    Points
    71
    Par défaut
    Bonjour,

    Vous avez bien raison au sujets des tables temporaires mais ce n'est pas moi qui a développé cette base de données et je dois juste lui apporter des modifications.

    Pour la procédure elle fait appel à une fonction scalaire qui est comme ceci :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    ALTER function [dbo].[MSP_GET_ProjectCodeByTask1] ()
        returns nvarchar
        as
        begin
     
        return (select TEXT_VALUE FROM dbo.MSP_TASK_CUSTOM_FIELD_VALUES  b2
        LEFT JOIN [ProjectServer_PWA_Published].[dbo].[MSP_CUSTOM_FIELDS]B ON (B.[MD_PROP_ID] = b2.[MD_PROP_ID])
        LEFT JOIN [ProjectServer_PWA_Published].[dbo].[MSP_LOOKUP_TABLE_VALUES]C ON b2.[CODE_VALUE]= C.[LT_STRUCT_UID]
        WHERE MD_PROP_NAME = 'Code Projet')
     
        end

  4. #4
    Rédacteur

    Avatar de SQLpro
    Homme Profil pro
    Expert bases de données / SQL / MS SQL Server / Postgresql
    Inscrit en
    Mai 2002
    Messages
    21 895
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Expert bases de données / SQL / MS SQL Server / Postgresql
    Secteur : Conseil

    Informations forums :
    Inscription : Mai 2002
    Messages : 21 895
    Points : 53 123
    Points
    53 123
    Billets dans le blog
    6
    Par défaut
    C'est donc bien cette fonction qui est stupidement écrite !
    Un tel SELECT ne peut en aucun cas garantir qu'il n'y aura qu'une seule ligne retournée. D’où votre message d'erreur.

    A +

  5. #5
    Membre régulier
    Profil pro
    Inscrit en
    Janvier 2007
    Messages
    472
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2007
    Messages : 472
    Points : 71
    Points
    71
    Par défaut
    Bonjour,

    Je dois modifier comment ma fonction ?

    Merci

  6. #6
    Rédacteur

    Avatar de SQLpro
    Homme Profil pro
    Expert bases de données / SQL / MS SQL Server / Postgresql
    Inscrit en
    Mai 2002
    Messages
    21 895
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Expert bases de données / SQL / MS SQL Server / Postgresql
    Secteur : Conseil

    Informations forums :
    Inscription : Mai 2002
    Messages : 21 895
    Points : 53 123
    Points
    53 123
    Billets dans le blog
    6
    Par défaut
    Comment pourrais-je le savoir ? ça dépend de votre fonctionnel !!!!

    Mais si vous voulez une consultation pour faire le boulot à votre place, sachez que mes tarifs commencent à 800 € HT par jour pour des missions longues (plus de 40 jours) à 1 600 € pour des missions courtes d'expertise....

    A +

  7. #7
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Décembre 2005
    Messages
    26
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2005
    Messages : 26
    Points : 29
    Points
    29
    Par défaut
    Bonjour,

    N'y a t-il que moi qui soit de scandalisé par le ton des messages de SQLPRO ? Nul ne songe à contester la compétence de Mr Brouard, mais faire preuve d'une telle impolitesse me semble injustifiable. Quand au fait d'étaler ses tarifs, n'est-ce pas totalement déplacé ?
    Etre un des piliers de ce site ne justifie pas, à mon avis, ce type d'attitude.

  8. #8
    Expert confirmé
    Avatar de Kropernic
    Homme Profil pro
    Analyste / Programmeur / DBA
    Inscrit en
    Juillet 2006
    Messages
    3 932
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : Belgique

    Informations professionnelles :
    Activité : Analyste / Programmeur / DBA
    Secteur : Distribution

    Informations forums :
    Inscription : Juillet 2006
    Messages : 3 932
    Points : 4 242
    Points
    4 242
    Par défaut
    Citation Envoyé par Oxiane Voir le message
    Bonjour,

    N'y a t-il que moi qui soit de scandalisé par le ton des messages de SQLPRO ? Nul ne songe à contester la compétence de Mr Brouard, mais faire preuve d'une telle impolitesse me semble injustifiable. Quand au fait d'étaler ses tarifs, n'est-ce pas totalement déplacé ?
    Etre un des piliers de ce site ne justifie pas, à mon avis, ce type d'attitude.
    Je comprends votre point de vue mais je comprends également le sien.

    Pour le cas présent, une personne demande qu'on lui donne tout chaud le code adéquat pour sa fonction mais en plus de cela, il ne donne aucune description du besoin fonctionnel.

    Et bien sûr, ceci n'est pas un cas isolé. Alors quand, comme lui, on fait don à la communauté d'une partie assez considérable de son temps, je conçois qu'il soit exaspéré par ce genre de comportement.

Discussions similaires

  1. Timeout lors de l'exécution d'une procédure stockée
    Par duffman dans le forum Développement
    Réponses: 15
    Dernier message: 03/04/2012, 01h26
  2. [XL-2003] Erreur lors de l'exécution d'une procédure
    Par pacocnec dans le forum Macros et VBA Excel
    Réponses: 3
    Dernier message: 29/06/2009, 12h39
  3. Erreurs lors de l'exécution d'une procédure
    Par vanesa dans le forum PL/SQL
    Réponses: 2
    Dernier message: 05/01/2009, 17h48
  4. Erreur lors de l'appel d'une procédure stockée
    Par aperrin dans le forum JDBC
    Réponses: 1
    Dernier message: 04/01/2008, 13h54
  5. Erreur d'Exécution d'une procédure stockée
    Par h.Madjid dans le forum SQL
    Réponses: 1
    Dernier message: 05/09/2007, 19h34

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