2017-06-05 4 views
0

Je tente d'insérer/de mettre à jour la table dans la base de données SQL Server à l'aide de la procédure stockée. J'ai créé une procédure stockée et le type de tableau comme ci-dessous également la structure de la table estProblème lié à l'utilisation de la procédure stockée pour insérer/mettre à jour la base de données SQL Server

CREATE TYPE Dept_TT AS TABLE 
(
dept_name varchar(64), 
jax_dept_id char(32) 
) 
GO 

ALTER PROCEDURE [dbo].[uspInsertorUpdateDep] 
@dt_TT AS afm.Dept_TT READONLY 
AS 
BEGIN 
SET NOCOUNT ON; 

BEGIN TRANSACTION; 

UPDATE dep 
SET dep.dept_name     = t.dept_name, 
    dep.jax_dept_id    = t.jax_dept_id 

FROM [afm].[jax_dept] dep 
INNER JOIN @dt_TT t ON dep.jax_dept_id = t.jax_dept_id 

INSERT INTO [afm].[jax_dept](dept_name, jax_dept_id) 
SELECT t.dept_name, t.jax_dept_id 
FROM @dt_TT t 
WHERE NOT EXISTS (SELECT 1 
       FROM [afm].[jax_dept] 
       WHERE jax_dept_id = t.jax_dept_id) 
COMMIT TRANSACTION; 

END; 

Quand je l'exercerai produre stocké dans le studio de gestion SQL Server, il insérer/met à jour les dossiers comme prévu. Je consommais ce StoredProcedure dans l'application et biztalk essayé de lancer l'application, il jette l'erreur comme

L'adaptateur n'a pas réussi à transmettre un message va envoyer le port « WcfSendPort_SqlAdapterBinding_Procedures_dbo_Custom_Dep » avec l'URL « MSSQL: // ». Il sera retransmis après l'intervalle de nouvelle tentative spécifié pour ce port d'envoi. Détails: "Microsoft.ServiceModel.Channels.Common.XmlReaderParsingException:.. Un appel de méthode inattendue a été faite Assurez-vous que le XML est bien formé la trace de la pile de l'appel de la méthode était la suivante: Void WriteFullEndElement()

Ci-dessous est. la carte et l'orchestration

Je permis au suivi et ont essayé de voir le XML qui est envoyé au port d'envoi et il semble bien comme ci-dessous.

<ns0:uspInsertorUpdateDep xmlns:ns0="http://schemas.microsoft.com/Sql/2008/05/Procedures/dbo" xmlns:ns3="http://schemas.microsoft.com/Sql/2008/05/Types/TableTypes/afm" xmlns:ns4="http://schemas.datacontract.org/2004/07/System.Data" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"> 

<ns0:dt_TT> 

<ns3:Dept_TT> 

<ns3:dept_name>XYZ</ns3:dept_name><ns3:jax_dept_id>RS</ns3:jax_dept_id></ns3:Dept_TT></ns0:dt_TT></ns0:uspInsertorUpdateDep> 

Je ne sais pas ce que je manque here.I ont l'autre application faisant la même chose en utilisant le type de table et la procédure stockée, il est co fonctionne parfaitement bien. Toute aide est grandement appréciée. Ou suggérer une autre approche pour insérer/mettre à jour la base de données du serveur SQL

Répondre

0

Définissez-vous l'action pour l'adaptateur soit explicitement dans les liaisons, soit dans une orchestration, soit vous l'ajoutez manuellement au contexte?

+0

Salut. Vous devriez considérer ajouter votre réponse comme un commentaire car il ne répond pas vraiment à la question :) –

+1

Ouais, nouvel utilisateur et je n'ai pas vu que je pourrais commenter sa réponse – user8141306