error:output port "z" must connected to a structural net expression如何解决?

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了error:output port "z" must connected to a structural net expression如何解决?相关的知识,希望对你有一定的参考价值。

参考技术A 网上有个类似的问题,请参考!

用CPLD对信号做2次取反,却编译不过。如下:
module demo2(k,exain);
input exain;
reg exa;
output k;
not n1(exa,exain);
not m1(k,exa);
endmodule

为什么编译不过啊?
output or inout port "<gate output>" must be connected to a structural net expression

答:
只要把“reg exa;”去掉或改成“wire exa;”,就可以了。
因为你使用的是门级描述,门与门之间的只能是wire,而不能是reg,这与RTL级描述是不同的。本回答被提问者和网友采纳

Error" ...非错误输出上的OLE DB Source.Outputs[OLE DB Source Output].Columns[XXXXXXXX]没有对应的输出

【中文标题】Error" ...非错误输出上的OLE DB Source.Outputs[OLE DB Source Output].Columns[XXXXXXXX]没有对应的输出【英文标题】:Error" ...The OLE DB Source.Outputs[OLE DB Source Output].Columns[XXXXXXXX] on the non-error output has no corresponding output 【发布时间】:2014-01-27 03:02:29 【问题描述】:

我花了几个小时试图解决这个问题。对于给我问题的列,我在 sql server 中使用标量函数来获取名称。该功能是正确的并且工作正常。然后我使用存储过程与 ssis 一起使用。给我错误的列说明它在错误输出上没有相应的输出列。一切似乎都很好。根据之前的建议,我已完成以下操作:

    删除源和目标并重新映射所有内容 将 DelayValidation 属性更改为 true 将最大错误计数更改为 100 未选中和重新选中源中的可用外部列

这些是以前论坛的建议。

我是一名实习生,想自己完成这项工作,而无需询问我的经理。我花了无数个小时试图解决这个问题。

有什么建议吗?

编辑以增加问题的价值

以下是我在 OLE DB 源中的查询

SELECT *
FROM RExtenstionBase R
LEFT OUTER JOIN AExtensionBase A
ON R.ASN = A.SN
AND R.ARN = A.R

此查询为我提供了 Dynamics 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 源的查询。该查询调用用户定义的标量值函数。不知何故,你得到了问题标题中的错误?我的事实是否正确?如果是这样,我们可能需要查看更多信息。数据流的屏幕截图和确切的错误消息是一个很好的起点 运行 SSIS 包时出现错误。我的数据流任务中有一个 OLE DB 源和一个 OLE DB 命令。我的 OLE DB 命令是什么使用我的存储过程。我正在将数据插入 MS Dynamics CRM。您说的错误是问题标题中的错误是正确的 很好的编辑,但是现在我们对包的工作原理有了更多的了解,让我们关注 OLE DB 命令。你能展示它是如何连接的+里面的代码吗? 我已经编辑了原始问题以添加 ssis 包的所有有效脚本 @billinkc 很抱歉延迟将脚本添加到原始问题中......去吃午饭收集我对此的想法 【参考方案1】:

显然这是 SSIS 包的常见错误。我通过深入 OLE DB 源,单击列选项卡,找到错误消息中包含的可用外部列,然后取消选中该复选框并重新选中它来消除错误。错误已解决!

【讨论】:

对我来说不太好用 - 但很简单,可以删除并重新创建 OLE DB 源来解决问题。 如果我没记错的话,我可能已经删除了连接并再次添加了连接,然后我取消选中该框并再次重新选中它。 根据您的建议未检查和检查,它对我有用! 经过多年的折腾终于奏效了,谢谢! 非常感谢,问题已解决【参考方案2】:

在向需要由现有 SSIS 包处理的表添加新列时,我经常遇到错误“错误输出没有相应的输出”。此错误伴随着一条错误消息,指出“值不在预期范围内”。

需要由现有 SSIS 包处理的新添加列。预期的行为是 SSIS 将识别出有一个新列,并在要处理的 OLEDB 源任务 SSIS 的列页面上选择此列。但是,在修改表后第一次打开 OLEDB 源任务时,我收到了两次以下错误消息:“值不在预期范围内。”打开编辑器和打开编辑器的“列”页面时出现错误消息。在 OLEDB 源任务的高级编辑器中,新列显示在 OLEDB 源输出列树中,但不在 OLEDB 源错误输出列树中。这是错误消息的实际潜在问题。不幸的是,似乎没有办法手动添加缺失的列。

如Jeff所说,为了解决这个问题,在普通编辑器的Columns Page上删除并重新添加新添加的列。

可能值得一提的是,OLEDB Source 任务的数据源是修改后的MDS View。 Microsoft CRM Dynamics 也在使用视图。这使我得出结论,在修改数据类型或添加/删除列时,使用视图作为数据源可能会产生上述任何一种错误。

相关话题:How to fix SSIS : "Value, does not fall within expected range"?

描述的解决方法是指带有 Mircorsoft.NET Framework 3.5 SP1 的 Visual Studio 2008 版本 9.0.30729.4462 QFE。数据库是 SQL Server 2008 R2 (SP2)。

【讨论】:

【参考方案3】:

如果我错了,请纠正我,但我发现从源获取数据时单击预览按钮会导致为列设置错误的长度,尤其是字符串。 这可能是因为长度是从获得的预览数据中确定的。因此,更好的做法是在选择源表后单击源对话框中的列选项卡。这主要是 ODBC 源的情况。

【讨论】:

以上是关于error:output port "z" must connected to a structural net expression如何解决?的主要内容,如果未能解决你的问题,请参考以下文章

sublime text2编译java文件(带有中文的)时出现Decode error - output not utf-8,请问该如何解决?

modelsim总是编译不成功,出现错误near "module": syntax error。求解答...

在线/离线ip地址

modelsim中调用模块时Port出现错误!

python error: curl: Protocol "'https" not supported or disabled in libcurl

错误:尝试使用中毒的“SIG_OUTPUT_COMPARE0A”