我花了數小時試圖解決此問題。在sql server中使用標量函數來獲取名稱的問題,該函數是正確的,並且工作正常,然後使用存儲過程與ssis一起使用,給出錯誤的列表示它沒有相應的。在錯誤輸出輸出列一切似乎要被罰款我已經做了按照前文的建議如下:錯誤「...非錯誤輸出中的OLE DB Source.Outputs [OLE DB源輸出] .Columns [XXXXXXXX]沒有相應的輸出
- 刪除源和目的地,並重新映射一切
- 更改DelayValidation道具erty真
- 更改的最大誤差數到100
- 未經檢查和複查源可用外部列
這些都是按照前文的論壇的建議。
我是一名實習生,希望自己做到這一點,而不必問我的經理。我花了無數個小時試圖解決這個問題。
有什麼建議嗎?
編輯增加價值的問題
以下是我在我的OLE DB源
SELECT *
FROM RExtenstionBase R
LEFT OUTER JOIN AExtensionBase A
ON R.ASN = A.SN
AND R.ARN = A.R
該查詢給了我,我從動態CRM需要的字段查詢。
以下是我的存儲過程調用在OLE DB命令:
EXEC InsertRepairs ?,?,?,?,?,?,?,?,?,?
以下是我的存儲過程腳本:
USE [MSCRM_RC]
GO
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
ALTER PROCEDURE [dbo].[InsertRepairs]
-- Add the parameters for the stored procedure here
@ROID nvarchar(100),
@AType nvarchar(100),
@ARN nvarchar(100),
@DateReceived datetime,
@RForRR nvarchar(100),
@C nvarchar(100),
@SN nvarchar(100),
@ASN nvarchar(100),
@Performed nvarchar(100),
@COR decimal
AS
BEGIN
-- SET NOCOUNT ON added to prevent extra result sets from
-- interfering with SELECT statements.
SET NOCOUNT ON;
DECLARE @newID AS UNIQUEIDENTIFIER
SET @newID = NEWID()
INSERT INTO [dbo].[A_RBase] /***BASE TABLE ALWAYS THE SAME ***/
([A_RCRIDID] /*Always change this tho */
,[CreatedOn]
,[CreatedBy]
,[ModifiedOn]
,[ModifiedBy]
,[CreatedOnBehalfBy]
,[ModifiedOnBehalfBy]
,[OwnerId]
,[OwnerIdType]
,[OwningBusinessUnit]
,[statecode]
,[statuscode]
,[ImportSequenceNumber]
,[OverriddenCreatedOn]
,[TimeZoneRuleVersionNumber]
,[UTCConversionTimeZoneCode])
VALUES
(@newID
,GETUTCDATE() -- CreatedOn
,'XXXXXXXXXXXXXXXXXXXXXXX' -- CreatedBy
,GETUTCDATE() -- ModifiedOn
,'XXXXXXXXXXXXXXXXXXXXXXX' -- ModifiedBy
,NULL -- CreatedOnBehalf
,NULL -- Modified''
,'XXXXXXXXXXXXXXXXXXXXXXX' -- OwnderId
,8
,'XXXXXXXXXXXXXXXXXXXXXXX'
,0 -- statecode
,1 -- statuscode
,5 -- ImportSequenceNumber
,NULL -- Overrid
,0 -- TimeZoneRule
,NULL) -- UTCConversion
INSERT INTO [dbo].[A_RExtensionBase]
([A_RCRID]
,[A_Name]
,[A_AType]
,[A_ARN]
,[A_DateReceived]
,[A_RForRR]
,[A_C]
,[A_SN]
,[A_ASN]
,[A_Performed]
,[A_COR])
VALUES
(@newID,
@ROID,
@AType,
@ARN,
@DateReceived,
@RForRR,
@C,
dbo.Lookup_SNID_GUID(@SN)
@ASN,
@Performed ,
@COR)
END
以下是我的標量值函數:
USE [MSCRM_RC]
GO
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
ALTER FUNCTION [dbo].[Lookup_SNID_GUID]
(
-- Add the parameters for the function here
@SN_Name nvarchar(100)
)
RETURNS UNIQUEIDENTIFIER
AS
BEGIN
-- Declare the return variable here
DECLARE @SN_GUID UNIQUEIDENTIFIER
SELECT @SN_GUID = SNID
FROM SNExtensionBase
WHERE name = (@SN_Name)
RETURN @SN_GUID
END
我花了幾秒鐘的時間閱讀這個問題;)幫助我理解這個問題。您有一個使用OLE DB Source的查詢。該查詢調用用戶定義的標量值函數。不知何故,你會在問題的標題中看到錯誤?我的事實是否正確?如果是這樣,我們可能需要查看更多信息。數據流的屏幕截圖和確切的錯誤消息是一個很好的起始位置 – billinkc
運行SSIS包時出現錯誤。我在我的數據流任務中有一個OLE DB源和一個OLE DB命令。我的OLE DB命令是什麼使用我的存儲過程。我將數據插入MS Dynamics CRM。您在說明錯誤是錯誤的問題時是正確的 –
良好的編輯,但現在我們知道更多關於程序包的工作方式,讓我們專注於OLE DB命令。你能說明它是如何連接的+它裏面的代碼? – billinkc