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

MS SQL Server Discussion :

SQL dynamique : pb de syntaxe


Sujet :

MS SQL Server

  1. #1
    Membre régulier Avatar de Pasiphae
    Inscrit en
    Octobre 2003
    Messages
    110
    Détails du profil
    Informations forums :
    Inscription : Octobre 2003
    Messages : 110
    Points : 104
    Points
    104
    Par défaut SQL dynamique : pb de syntaxe
    Bonjour !

    J'essaie d utiliser une procedure stockee avec du SQL dynamique, et j ai le droit à tout plein de messages d'erreur... malgré mes nombreuses tentatives... Peut ete que c'est flagrant, et que quelque chose va vous sauter aux yeux... Mais moi je sèche là...

    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
    CREATE PROCEDURE SearchDocs
    (
        @ModuleID       int,
        @Req               nvarchar(300)
    )
    as 
    BEGIN 
       DECLARE @SQL varchar(8000) 
       SELECT @SQL= 'SELECT  DISTINCT
        Docs.FileName,
        Docs.FilePath,
        Docs.Category,
    FROM Docs
    WHERE Docs.ModuleID ='
    SELECT @SQL  = @SQL+ 'convert(int,' + " '@ModuleID' " +')  ' 
    SELECT @SQL= @SQL +  @Req
     
     EXEC (@SQL) 
    END
    GO
    Et lorsque j utilise, j ai le + souvent ce message d'erreur là (avec ou sans la fonction convert... ):
    Erreur de syntaxe lors de la conversion de la valeur varchar '@ModuleID' vers une colonne de type de données int.

    Lorsque j enlève la série de ' ' et de " " (les espaces ne sont pas dans la procédure initiale, c est rajouté ici pour la lisibilité) autour de la variable @ModuleID, j'obtiens une erreur comme quoi @SQL est incorrect...
    Je suppose que je n utilise pas la bonne syntaxe... Je cherche, mais j avoue qu une piste me ferait gagner un peu de temps...

  2. #2
    Membre régulier Avatar de Pasiphae
    Inscrit en
    Octobre 2003
    Messages
    110
    Détails du profil
    Informations forums :
    Inscription : Octobre 2003
    Messages : 110
    Points : 104
    Points
    104
    Par défaut
    quand je teste ceci :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     (...) SELECT @SQL = @SQL+ 'convert(int, @ModuleID)  '
    SELECT @SQL= @SQL +  @Req
     
       EXEC (@SQL) 
    END
    GO
    J obtiens ceci : La variable '@ModuleID' doit être déclarée.

    Je sais plus où chercher...

  3. #3
    Membre régulier Avatar de Pasiphae
    Inscrit en
    Octobre 2003
    Messages
    110
    Détails du profil
    Informations forums :
    Inscription : Octobre 2003
    Messages : 110
    Points : 104
    Points
    104
    Par défaut
    bon ben j ai trouvé... Pour ceux que cela intéresserait :


    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
    CREATE PROCEDURE SearchDocs
    (
        @ModuleID       nvarchar(10),
        @Req               nvarchar(300)
    )
    as 
    BEGIN 
       DECLARE @SQL varchar(8000) 
       SELECT @SQL= 'SELECT  DISTINCT 
        Docs.FileName, 
        Docs.FilePath, 
        Docs.Category, 
    FROM Docs 
    WHERE Docs.ModuleID =' 
    SELECT @SQL  = @SQL + ' convert(int,' +  @ModuleID  +') '
    SELECT @SQL= @SQL +  @Req 
     
     EXEC (@SQL) 
    END 
    GO

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

Discussions similaires

  1. Pb :SQl dynamique et refcursor
    Par anthony8 dans le forum Langage SQL
    Réponses: 9
    Dernier message: 21/10/2004, 10h39
  2. Prob SQL dynamique
    Par anthony8 dans le forum Langage SQL
    Réponses: 2
    Dernier message: 30/09/2004, 10h53
  3. Appel de function en SQL Dynamique
    Par dkd dans le forum Oracle
    Réponses: 22
    Dernier message: 28/09/2004, 19h01
  4. SQL dynamique
    Par Etienne1 dans le forum MS SQL Server
    Réponses: 4
    Dernier message: 16/08/2004, 11h18
  5. SQL Dynamique - Materialized view
    Par Simeans2004 dans le forum SQL
    Réponses: 15
    Dernier message: 10/06/2004, 18h56

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