Ich schreibe ein SSIS-Paket, um Daten aus einer Staging-Umgebung auf unseren Produktionsserver zu verschieben.
Ich habe eine CLR gespeicherte Prozedur esp_ProcessStagingXML, die 4 Parameter hat, 2 von ihnen Ausgabeparameter
Ich versuche, diese CLR sproc einmal pro Element in den Datenfluss meines SSIS-Pakets aufrufen.
Ich habe den OLEDBCommand mit der folgenden SqlCommand-Eigenschaft erstellt:
exec [esp_ProcessStagingXML] ?, ?, ? output, ? output
Ich erhalte jedoch die folgende Fehlermeldung, egal was ich versuche:
Error at Move Documents to XXX [Insert Into XXX[16]: SSIS Error Code DTS_E_OLEDBERROR. An OLE DB error has occured. Error code: 0x80004005.
An OLE DB record is availabl. Source: "Microsoft SQL Server Native Client 10.0" Hresult: 0x80004005
Description: "Syntax error, permission violation, or other nonspecific error"..
Ich habe versucht, dies unter dem sa-Konto auszuführen, um zu überprüfen, ob es keine Sicherheitsprobleme gibt. Ich bin nicht in der Lage, Spalten zu Parametern wegen htis zuordnen, und es schlägt jedes Mal fehl, wenn ich auf Aktualisieren klicken. Ich habe keine Probleme mit expliziten Select-Statements oder Sprocs, die keine CLR-Sprocs sind. Ist jemand auf dieses Problem gestoßen bzw. hat Lösungen dafür gefunden?
USE [XXXX]
GO
/****** Object: StoredProcedure [dbo].[esp_ProcessStagingXML] Script Date: 02/15/2011 15:31:35 ******/
ALTER PROCEDURE [dbo].[esp_ProcessStagingXML]
@param1 [nvarchar](max),
@param2 [bigint],
@param3 [bit] OUTPUT,
@param4[nvarchar](max) OUTPUT
WITH EXECUTE AS CALLER
AS
EXTERNAL NAME [PullFromStaging].[StoredProcedures].[esp_ProcessStagingXML]
GO
Dies ist auf Microsoft Sql Server 2008 R2.