代码之家  ›  专栏  ›  技术社区  ›  Dimitri

子字符串长度失败(需要的长度超过设置为需要的长度)

  •  0
  • Dimitri  · 技术社区  · 7 年前

    我有一个Microsoft Flow失败,出现以下消息:

    Body
    {
    "status": 400,
    "message": "Invalid Mashup Expression using supplied values.\r\n inner exception: Microsoft SQL: String or binary data would be truncated.",
    }
    

    我知道这意味着什么,在本例中,这是关于一个SQL列,该列设置了nvarchar(2000)作为限制。在使用“SQL插入操作”插入流之前,我会在流中处理好这一点。我将HTML(从电子邮件)转换为文本(源代码为5024长),

    在此之后,我检查(条件)长度是否大于1999(它更大,因此进入“是”部分),然后我取5024长字符串的子字符串,如下所示“ substring(body('converetedHTML'),0,1999) “(请注意,这适用于所有以前的运行)但出于某种原因,对于这1个流,需要2023年而不是1999年,因此出现错误消息。

    在每一步中,它都有它应该具备的功能,除了SQL插入操作之外,这个变量的值从1999年变为2023年。不知道怎么会这样。

    有没有人能给我一些建议,或者帮我解决问题,因为根据我的说法,这是一个“故障”,不是一个逻辑错误,但我可能是错的,无论如何,我想弄清楚这一点?

    提前谢谢大家!

    1 回复  |  直到 5 年前
        1
  •  0
  •   Dimitri    7 年前

    @Nick,感谢您指出,这确实是问题所在,内容中有“\n”,这导致+X数量超过了设定的限制。

    非常感谢!