2 Stimmen

SSIS - OleDBCommand Problem mit CLR Sproc

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.

1voto

Kent Punkte 31

Ich löste dies, indem ich diesen Sproc in einen anderen Sproc einbettete, der den CLR-Sproc aufrief.

hacky, aber scheint zu funktionieren.

0voto

John Sansom Punkte 40295

Werfen Sie einen Blick auf CLR-Integration Code-Zugriffssicherheit .

Ich vermute, dass Sie bei der Erstellung der Assembly in SQL Server keine ausreichende PERMISSION SET vergeben haben.

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X