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 :

Appel de procédure stockée avec paramètre concaténé


Sujet :

Développement SQL Server

  1. #1
    Membre expérimenté

    Homme Profil pro
    Inscrit en
    Janvier 2006
    Messages
    1 183
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Janvier 2006
    Messages : 1 183
    Points : 1 362
    Points
    1 362
    Par défaut Appel de procédure stockée avec paramètre concaténé
    Bonjour,
    J'ai écrit une procédure toute simple pour écrire dans une table log, sp_log, qui prend une chaîne en paramètre.
    Quand je fais :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    set  @texte = 'toto' + 'titi'
    exec sp_log @texte
    Ca fonctionne.
    Quand je fais :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    exec sp_log 'toto' + 'titi'
    Ca veut pas le faire
    J'aimerai bien comprendre pourquoi.
    Merci.
    [Access] Les bases du débogage => ici

  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 772
    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 772
    Points : 52 729
    Points
    52 729
    Billets dans le blog
    5
    Par défaut
    'toto' + 'titi'

    N'est pas un paramètre. C'est une expression.

    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 expérimenté

    Homme Profil pro
    Inscrit en
    Janvier 2006
    Messages
    1 183
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Janvier 2006
    Messages : 1 183
    Points : 1 362
    Points
    1 362
    Par défaut
    Merci, mais ça ne m'aide pas beaucoup dans la résolution de mon problème (qui n'en n'est pas vraiment un puisque j'ai une solution de contournement, mais j'aimerais bien comprendre).
    [Access] Les bases du débogage => ici

  4. #4
    Membre expérimenté
    Homme Profil pro
    Architecte de base de données
    Inscrit en
    Septembre 2016
    Messages
    731
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 56
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Activité : Architecte de base de données
    Secteur : Conseil

    Informations forums :
    Inscription : Septembre 2016
    Messages : 731
    Points : 1 416
    Points
    1 416
    Par défaut
    La réponse de SQLpro est pourtant la bonne.

    Une expression nécessite d'être résolue/évaluée.
    Un paramètre est une valeur.

    Le fait de regrouper les 2 en une seule écriture ne fonctionne pas comme tu t'en es aperçu.
    Ton écriture voudrait que l'expression soit résolue afin de passer le résultat en tant que valeur du paramètre.

    En espérant que cette explication de texte te satisfasse.
    Le savoir est une nourriture qui exige des efforts.

  5. #5
    Membre expérimenté

    Homme Profil pro
    Inscrit en
    Janvier 2006
    Messages
    1 183
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Janvier 2006
    Messages : 1 183
    Points : 1 362
    Points
    1 362
    Par défaut
    Ok, je suis donc obligé de faire :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    set  @texte = 'toto' + 'titi'
    exec sp_log @texte
    ou il y a moyen de tout faire sur une seule ligne ?
    [Access] Les bases du débogage => ici

  6. #6
    Modérateur

    Profil pro
    dba
    Inscrit en
    Janvier 2010
    Messages
    5 643
    Détails du profil
    Informations personnelles :
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : dba

    Informations forums :
    Inscription : Janvier 2010
    Messages : 5 643
    Points : 13 092
    Points
    13 092
    Par défaut
    bonjour

    Si, en dynamique, mais c'est moche et inutile ici :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    exec ('sp_log ' + '''toto''' + '''titi''')

Discussions similaires

  1. [2.x] appelle a un procédure stockée avec paramètre in Symfony 2.7
    Par ahmedlafai dans le forum Symfony
    Réponses: 0
    Dernier message: 16/09/2015, 14h52
  2. [Débutant] Appel d'une procédure stockée avec paramètre en output
    Par Malainet dans le forum Linq
    Réponses: 5
    Dernier message: 11/02/2013, 16h26
  3. [Débutant] Appel d'une procédure stockée avec paramètres
    Par Bakkach dans le forum VB.NET
    Réponses: 6
    Dernier message: 09/10/2012, 16h41
  4. Réponses: 1
    Dernier message: 23/08/2010, 12h13
  5. [SQL2K5] Procédure stockée avec paramètre à valeurs multiple
    Par Jinroh77 dans le forum Développement
    Réponses: 1
    Dernier message: 16/05/2008, 17h31

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