1

Je suis une tâche SQL d'exécution sur SSIS 2005. Type de connexion ADO.NET et paramètre d'entrée de procédure stockée. Ne fonctionne pas Erreur de syntaxe J'ai lu de la documentation et des blogs mais ça ne fonctionne pas pour moi. Voilà ce que j'ai sur l'instruction SQL de la tâche SQL Exeute (de ADO.NET)Exécuter une tâche SQL sur SSIS 2005. Type de connexion ADO.NET et paramètre d'entrée de procédure stockée. Ne fonctionne pas Erreur de syntaxe

EXEC StoredProcedureName @ParameterName =

Il donne différentes erreurs sur une syntaxe différente j'ai essayé. Tous les échecs Problèmes avec la requête, la propriété "ResultSet" n'est pas définie correctement, les paramètres ne sont pas définis correctement ou la connexion n'est pas établie correctement.

J'ai essayé toutes les combinaisons comme EXEC StoredProcedureName @ParameterName =? StoredProcedureName? StoredProcedureName @ParameterName =? etc etc en vain

J'ai vérifié le type de paramètre et sa fine

La même configuration fonctionne si je change le type de connexion à OLE DB. Mais je ne veux pas OLE DB et que vous souhaitez changer pour ADO.NET

J'ai essayé selon les spécifications Microsoft mais aussi ne fonctionne pas par Micrtosoft Si IsQueryStoredProcedure est définie sur False, EXEC uspGetBillOfMaterials @StartProductID, @CheckDate

J'ai essayé de changer toutes les combinaisons sur la propriété IsQueryStoredProcedure également en vain je cartographié nom du paramètre, l'ordre et variable sur les correspondances de paramètres correctement toujours pas de chance

comme je l'ai dit il fonctionne avec OLEDB, mais ne fonctionne pas avec ADO .NET même après avoir changé de syntaxe. S'il vous plaît aider

J'ai une autre tâche sur ADO.NET et il fonctionne très bien, car il n'a pas de paramètre d'entrée

Répondre

1

Définissez la IsQueryStoredProcedure False, puis définir le SQLstatement à

Exécuter MyStoredProcedure @MyParameter

Où @MonParamètre est le nom du paramètre dans la section Mappage des paramètres de la tâche, qui référence une variable dans votre package. Cette variable contient la valeur que vous souhaitez transmettre à la procédure stockée. Lorsque vous utilisez une connexion ADO.NET, les paramètres doivent utiliser la notation '@', lorsque vous utilisez OLE DB, vous devez utiliser le '?' notation.

ADO.NET. Exécuter MyStoredProcedure @MyParameter OLE DB. Exécuter MyStoredProcedure?

Rappelez-vous cependant que lorsque vous utilisez OLE DB, vous devez référencer les noms des paramètres (dans le paramètre Mapping) en utilisant 0,1,2,3 etc

3

question ancienne, mais dans le cas où il aide quelqu'un:

  1. Set IsQueryStoredProcedure-True
  2. Ecrire seulement le nom de la procédure stockée dans le SQLStatement: sp_MyStoredProcedure
  3. dans l'onglet « Mapping », ajoutez votre paramètre:

    Direction = input ; Name = @parameterName