Appeler un webservice SOAP de TSQL procédure stockée
Je suis en train de construire une procédure stockée dans TSQL pour appeler un service web. J'ai fait cela en avant dans Oracle, mais il me semble qu'il n'est pas si facile à MSSQL.
Il y a bien sûr de nombreuses raisons de ne pas le faire dans une procédure stockée, mais étant donné que cette procédure est à utiliser uniquement dans un quotidien de lot, la performance n'est pas trop un problème.
La chose que je veux faire est comme suit:, Envoyer un nom pour le webservice, le webservice sera de retour un nom réparties dans des choses comme le prénom, le préfixe, le nom de famille, etc. Les valeurs retournées devront être écrites sur un tableau.
J'ai trouvé un intéressant procédure à http://www.vishalseth.com/post/2009/12/22/Call-a-webservice-from-TSQL-(Stored-Procedure)-using-MSXML.aspx qui semble faire exactement ce que je veux, mais dès que vous ajoutez un corps à l'appel, je tombe sur des erreurs comme "paramètre incorrect". Ceci est également indiqué dans l'article, et apparemment il n'y a pas de solution facile pour elle. J'ai vraiment besoin d'envoyer un corps de requête.
J'ai aussi lu beaucoup d'articles sur la résolution avec interface CLI ou le "Service Web de l'Éditeur de Tâche", ou "SSIS" peu je ne pouvais pas trouver toutes les tutoriels sur où commencer. Maintenant je n'ai que Microsoft SQL server management studio.
Je suis sur SQL server 2012.
Des idées sur la direction que je devrais aller avec cela?
J'ai déjà trouvé cette description, ce qui semble assez propre: http://www.databasejournal.com/features/mssql/article.php/3821271/Calling-a-Web-Service-from-within-SQL-Server.htm Cependant, après l'installation de visual studio 2012 et la création d'une "base de données SQL server de projet", je suis incapable de choisir "Ajouter une Référence Web" dans la solution menu contextuel, il y a juste nu telle option dans le menu.
OriginalL'auteur ErikL | 2014-10-06
Vous devez vous connecter pour publier un commentaire.
Dans le passé, j'ai utilisé la méthode suivante, il peut ne pas être la meilleure méthode de ces jours, mais il a bien fonctionné pour moi :
J'ai utilisé cette pour appeler un service web qui permet de produire un rapport et l'envoie à l'intérieur de la méthode.
J'ai ajouté quelques modifications pour montrer comment vous pouvez spécifier le corps de la requête et de la poste.
Désolé d'avoir juste regardé vos liens, et ils donnent la même réponse, doit être un lundi!
OriginalL'auteur Mattgb
Ce monstre pour mes propres besoins
edit: mise en forme
OriginalL'auteur Arthur
Je suis tombé sur cette question. Voici la bonne façon d'exécuter un HTTP Post avec des paramètres de T-SQL:
Le crédit va à l'auteur original.
Edit: L'exemple de service, j'ai été appeler ici semble avoir arrêté. Vous aurez besoin de remplacer l'URL et la poste à un autre point de terminaison pour les voir travailler.
OriginalL'auteur misteroptimist
Vous ne pouvez pas ajouter une Référence Web dans la manière habituelle lors de l'entretien d'un Projet SQL Server dans Visual Studio. Toutefois, vous pouvez utiliser le WSDL Utilitaire pour créer l'Interface Web et l'ajouter à votre solution. Par la suite, vous pourrez alors accéder à la page Web de Méthodes que vous voulez dans votre Procédure Stockée CLR.
L'WSDL.exe utilitaire peut être trouvé à l'intérieur de l'installation de Microsoft SDK, j'ai couru à la mine à l'aide de la version de Windows 7, mais une simple recherche sur votre disque dur doit vous donner votre emplacement, qui a été installé dans le répertoire suivant : C:\Program Files (x86)\Microsoft SDKs\Windows\v7.0A\Bin
Les commandes à utiliser lors de l'exécution de la WSDL.exe utilitaire :
par exemple:
Cela va générer de la Météo.cs de fichier, dans ce cas vous pouvez ensuite ajouter à votre projet et appel à l'intérieur de votre méthode.
J'ai eu une journée de congé hier d'apprendre à devenir un Barista (juste au cas où 🙂 ) j'ai mis à jour ma réponse à montrer comment vous appelleriez wsdl.exe
OriginalL'auteur Mattgb