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 :

Problème procédures imbriquées [2017]


Sujet :

Développement SQL Server

  1. #1
    Membre à l'essai
    Inscrit en
    Juin 2010
    Messages
    13
    Détails du profil
    Informations forums :
    Inscription : Juin 2010
    Messages : 13
    Points : 12
    Points
    12
    Par défaut Problème procédures imbriquées
    Bonjour,

    J'ai un problème avec une procédure stockée sous MS SQL 2017.
    J'ai créé une première procédure procfin_van_paiements avec le script :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    CREATE PROCEDURE procfin_van_paiements(
    	@dosId INT,
    	@taux DECIMAL(18,8), 
    	@ValeurActuelleNet DECIMAL(18,8) OUTPUT
    )
    AS
    BEGIN
    ....
    Quand j'exécute cette procédure avec l'instruction suivante, elle fonctionne très bien
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    DECLARE @retour_van DECIMAL(18,8)
    EXECUTE procfin_van_paiements @dosId = 334751, @taux = 0, @ValeurActuelleNet = @retour_van OUTPUT
    --> @retour_van = 3157

    J'ai ensuite créé une deuxième procédure qui doit notamment exécuter la première 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
    CREATE PROCEDURE procfin_tri_paiements(
    	@dosId INT,
    	@dPrecision DECIMAL(6,5),
    	@retour DECIMAL(18,8) OUTPUT
    	) 
    AS
    BEGIN
    	DECLARE @var_x1 DECIMAL(18,8);
    	SET @var_x1 = 0;
    	DECLARE @var_f1 DECIMAL(18,8);
    	SET @var_f1 = 0;
     
    	EXECUTE procfin_van_paiements @dosId, @var_x1, @var_f1 OUTPUT;
    	PRINT 'var_f1 ' + CONVERT(VARCHAR, @var_f1);
    ...
    Et là, la première procédure ne fonctionne pas. J'ai @var_f1 = 0.

    Est-ce que quelqu'un sait d'où peut venir le problème ?

    Merci beaucoup pour votre aide.

  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 763
    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 763
    Points : 52 554
    Points
    52 554
    Billets dans le blog
    5
    Par défaut
    Simplifions au maximum vos procédures :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    CREATE PROCEDURE procfin_van_paiements 
        @dosId INT,
        @taux DECIMAL(18,8),
        @ValeurActuelleNet DECIMAL(18,8) OUTPUT
    AS
    SET @ValeurActuelleNet = 123;
    GO
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    CREATE PROCEDURE procfin_tri_paiements
        @dosId INT,
        @dPrecision DECIMAL(6,5),
        @retour DECIMAL(18,8) OUTPUT
     
    AS
    DECLARE @var_f1 DECIMAL(18,8) = 0;
    EXECUTE procfin_van_paiements 1, 2, @var_f1 OUTPUT;
    PRINT @var_f1;
    GO
    Test :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    EXEC procfin_tri_paiements 1, 2, 3
    Resultat :
    Il n'y a donc pas de problème.... Regardez donc dans le code que vous n'avez pas publié !

    A +
    Frédéric Brouard - SQLpro - ARCHITECTE DE DONNÉES - expert SGBDR et langage SQL
    Le site sur les SGBD relationnels et le langage SQL: http://sqlpro.developpez.com/
    Blog SQL, SQL Server, SGBDR : http://blog.developpez.com/sqlpro
    Expert Microsoft SQL Server - M.V.P. (Most valuable Professional) MS Corp.
    Entreprise SQL SPOT : modélisation, conseils, audit, optimisation, formation...
    * * * * * Expertise SQL Server : http://mssqlserver.fr/ * * * * *

  3. #3
    Membre à l'essai
    Inscrit en
    Juin 2010
    Messages
    13
    Détails du profil
    Informations forums :
    Inscription : Juin 2010
    Messages : 13
    Points : 12
    Points
    12
    Par défaut
    Merci beaucoup pour la réponse.
    Le problème c'est que la procédure procfin_van_paiements me renvoie bien 123 quand elle est exécutée directement mais quand elle est exécutée dans la procédure procfin_tri_paiements, elle me renvoie toujours 0 et jamais 123.

  4. #4
    Expert éminent
    Avatar de StringBuilder
    Homme Profil pro
    Chef de projets
    Inscrit en
    Février 2010
    Messages
    4 152
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 45
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Chef de projets
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Février 2010
    Messages : 4 152
    Points : 7 402
    Points
    7 402
    Billets dans le blog
    1
    Par défaut
    Quand je lis ça :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    DECLARE @retour_van DECIMAL(18,8)
    EXECUTE procfin_van_paiements @dosId = 334751, @taux = 0, @ValeurActuelleNet = @retour_van OUTPUT
    Je ne sais pas ce que renvoie la procédure, mais je doute que ce soit la valeur contenur dans "@retour_van"
    On ne jouit bien que de ce qu’on partage.

  5. #5
    Rédacteur

    Avatar de SQLpro
    Homme Profil pro
    Expert bases de données / SQL / MS SQL Server / Postgresql
    Inscrit en
    Mai 2002
    Messages
    21 763
    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 763
    Points : 52 554
    Points
    52 554
    Billets dans le blog
    5
    Par défaut
    Vous avez effectivement inversé les paramètres…

    A +
    Frédéric Brouard - SQLpro - ARCHITECTE DE DONNÉES - expert SGBDR et langage SQL
    Le site sur les SGBD relationnels et le langage SQL: http://sqlpro.developpez.com/
    Blog SQL, SQL Server, SGBDR : http://blog.developpez.com/sqlpro
    Expert Microsoft SQL Server - M.V.P. (Most valuable Professional) MS Corp.
    Entreprise SQL SPOT : modélisation, conseils, audit, optimisation, formation...
    * * * * * Expertise SQL Server : http://mssqlserver.fr/ * * * * *

  6. #6
    Membre à l'essai
    Inscrit en
    Juin 2010
    Messages
    13
    Détails du profil
    Informations forums :
    Inscription : Juin 2010
    Messages : 13
    Points : 12
    Points
    12
    Par défaut
    Merci pour la réponse

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. problème de procédure imbriquée
    Par ballantine's dans le forum MS SQL Server
    Réponses: 4
    Dernier message: 24/01/2008, 16h55
  2. Réponses: 2
    Dernier message: 20/09/2006, 14h38
  3. [PL/SQL] Procédures imbriquées
    Par dcollart dans le forum Oracle
    Réponses: 16
    Dernier message: 10/07/2006, 16h12
  4. problème procédure stockée
    Par hamham dans le forum PostgreSQL
    Réponses: 1
    Dernier message: 19/04/2006, 12h33
  5. Problème procédure stockée + trie
    Par an_merle dans le forum SQL Procédural
    Réponses: 3
    Dernier message: 14/02/2006, 22h58

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