<?xml version="1.0" encoding="UTF-8"?>
<rss xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:taxo="http://purl.org/rss/1.0/modules/taxonomy/" version="2.0">
  <channel>
    <title>topic Why are text lengths different? in Dataflow</title>
    <link>https://community.fabric.microsoft.com/t5/Dataflow/Why-are-text-lengths-different/m-p/4086484#M3571</link>
    <description>&lt;P&gt;I have a table, which I can't refresh due to the error "&lt;SPAN&gt;MashupException.Error: DataSource.Error: Microsoft SQL: String or binary data would be truncated."&lt;BR /&gt;My problem is that I have trouble debugging the issue and applying Text.Start to the affected columns doesn't work &lt;EM&gt;probably?&lt;/EM&gt;&amp;nbsp; The different ways of gauging the maximum string length in these columns give different results, 120 or 126 depending on how I do it.&amp;nbsp;&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN&gt;An example script is below, and the returned length for each block is added as a comment. The Column's width in the destination table is 120, and the dataflow refresh fails with the above error, so 1 and 4 are likely correct, but I don't understand how these differing results are possible at all.&amp;nbsp;&lt;/SPAN&gt;&lt;/P&gt;&lt;DIV&gt;&lt;PRE&gt;&lt;SPAN&gt;TabTextCut = Table.TransformColumnTypes(Table.TransformColumns(TabInhalt, {{"t_name", each Text.Start(_, 120)}}), {{"t_name", type text}})&lt;BR /&gt;,TargetTable = Table.AddColumn(&lt;/SPAN&gt;&lt;SPAN&gt;//temp-table, used by methods 1-3&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp; &amp;nbsp; TabTextCut, &lt;/SPAN&gt;&lt;SPAN&gt;"text_length"&lt;/SPAN&gt;&lt;SPAN&gt;, &lt;/SPAN&gt;&lt;SPAN&gt;each&lt;/SPAN&gt;&lt;SPAN&gt; [t_name] //Add column "text_length" as copy of "t_name&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp; )&lt;BR /&gt;&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp; &lt;/SPAN&gt;&lt;SPAN&gt;//126&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp; ,LongestString = List.Max(&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp; &amp;nbsp; List.Transform(&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; Table.ToList(&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; Table.SelectColumns(&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; TargetTable, &lt;/SPAN&gt;&lt;SPAN&gt;"text_length"&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; )&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; ), Text.Length&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp; &amp;nbsp; )&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp; )&lt;BR /&gt;&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp; &lt;/SPAN&gt;&lt;SPAN&gt;//120&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp; ,LongestStringAlt = List.Max(&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp; &amp;nbsp; List.Transform(&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; Table.ToList(&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; Table.SelectColumns(&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; Table.TransformColumns(&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; TargetTable, {{&lt;/SPAN&gt;&lt;SPAN&gt;"text_length"&lt;/SPAN&gt;&lt;SPAN&gt;, &lt;/SPAN&gt;&lt;FONT size="2"&gt;&lt;SPAN&gt;(tex &lt;/SPAN&gt;&lt;SPAN&gt;as&lt;/SPAN&gt;&lt;SPAN&gt; nullable &lt;/SPAN&gt;&lt;SPAN&gt;text&lt;/SPAN&gt;&lt;SPAN&gt;) &lt;/SPAN&gt;&lt;SPAN&gt;as&lt;/SPAN&gt;&lt;SPAN&gt; nullable &lt;/SPAN&gt;&lt;SPAN&gt;text&lt;/SPAN&gt;&lt;SPAN&gt; =&amp;gt; Text.From(Text.Length(tex)&lt;/SPAN&gt;&lt;/FONT&gt;&lt;SPAN&gt;}} &lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; ), &lt;/SPAN&gt;&lt;SPAN&gt;"text_length"&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; )&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; ), Number.FromText&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp; &amp;nbsp; )&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp; )&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp; &lt;/SPAN&gt;&lt;SPAN&gt;//120&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp; ,LongestStringTable = Table.First(&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp; &amp;nbsp; Table.Sort(&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; Table.TransformColumns(&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; TargetTable, {{&lt;/SPAN&gt;&lt;SPAN&gt;"text_length"&lt;/SPAN&gt;&lt;SPAN&gt;, Text.Length}}&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; ), {&lt;/SPAN&gt;&lt;SPAN&gt;"text_length"&lt;/SPAN&gt;&lt;SPAN&gt;, Order.Descending}&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp; &amp;nbsp; )&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp; )[text_length]&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp; &lt;/SPAN&gt;&lt;SPAN&gt;//126&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp; ,LongestStringDirect = List.Max(&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp; &amp;nbsp; List.Transform(&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; Table.ToList(&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; Table.SelectColumns(TabTextCut, &lt;/SPAN&gt;&lt;SPAN&gt;"t_name"&lt;/SPAN&gt;&lt;SPAN&gt;) //Explicitely not TargetTable&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; )&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; , Text.Length&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp; &amp;nbsp; )&lt;/SPAN&gt;&lt;/PRE&gt;&lt;P&gt;Edit:&lt;BR /&gt;I have, as a test, cut off every string after the first letter with Text.Start(_, 1). The debug function below still manages to return maximum string lengths of 4 somehow. base_table is the table I am examining, column_length_map stores each column name of base_table, their data type and, for text types, their allowed length.&lt;/P&gt;&lt;DIV&gt;&lt;PRE&gt;&lt;SPAN&gt;(base_table &lt;/SPAN&gt;&lt;SPAN&gt;as&lt;/SPAN&gt; &lt;SPAN&gt;table&lt;/SPAN&gt;&lt;SPAN&gt;, column_length_map &lt;/SPAN&gt;&lt;SPAN&gt;as&lt;/SPAN&gt; &lt;SPAN&gt;table&lt;/SPAN&gt;&lt;SPAN&gt;) &lt;/SPAN&gt;&lt;SPAN&gt;as&lt;/SPAN&gt; &lt;SPAN&gt;table&lt;/SPAN&gt;&lt;SPAN&gt; =&amp;gt; &lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;let&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp; StringCols = Table.SelectRows(column_length_map, &lt;/SPAN&gt;&lt;SPAN&gt;each&lt;/SPAN&gt;&lt;SPAN&gt; [data_type] = &lt;/SPAN&gt;&lt;SPAN&gt;"char"&lt;/SPAN&gt;&lt;SPAN&gt; or [data_type] = &lt;/SPAN&gt;&lt;SPAN&gt;"varchar"&lt;/SPAN&gt;&lt;SPAN&gt;),&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp; test2 = Table.AddColumn(Table.SelectColumns(StringCols, &lt;/SPAN&gt;&lt;SPAN&gt;"staging_column"&lt;/SPAN&gt;&lt;SPAN&gt;), &lt;/SPAN&gt;&lt;SPAN&gt;"length"&lt;/SPAN&gt;&lt;SPAN&gt;, &lt;/SPAN&gt;&lt;SPAN&gt;each&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; List.Max(&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; List.Transform(&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; Table.ToList(&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; Table.SelectColumns(base_table, Record.Field(_, &lt;/SPAN&gt;&lt;SPAN&gt;"staging_column"&lt;/SPAN&gt;&lt;SPAN&gt;))&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; )&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; , (val) =&amp;gt; Text.Length(val)&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; )&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; )&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp; )&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp; , test3 = Table.Join(test2, &lt;/SPAN&gt;&lt;SPAN&gt;"staging_column"&lt;/SPAN&gt;&lt;SPAN&gt;, Table.SelectColumns(column_length_map, {&lt;/SPAN&gt;&lt;SPAN&gt;"staging_column"&lt;/SPAN&gt;&lt;SPAN&gt;, &lt;/SPAN&gt;&lt;SPAN&gt;"max_length"&lt;/SPAN&gt;&lt;SPAN&gt;}), &lt;/SPAN&gt;&lt;SPAN&gt;"staging_column"&lt;/SPAN&gt;&lt;SPAN&gt;, JoinKind.Inner)&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;in&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp; test3&lt;/SPAN&gt;&lt;/PRE&gt;&lt;/DIV&gt;&lt;/DIV&gt;</description>
    <pubDate>Wed, 07 Aug 2024 11:50:15 GMT</pubDate>
    <dc:creator>rvp_ordix</dc:creator>
    <dc:date>2024-08-07T11:50:15Z</dc:date>
    <item>
      <title>Why are text lengths different?</title>
      <link>https://community.fabric.microsoft.com/t5/Dataflow/Why-are-text-lengths-different/m-p/4086484#M3571</link>
      <description>&lt;P&gt;I have a table, which I can't refresh due to the error "&lt;SPAN&gt;MashupException.Error: DataSource.Error: Microsoft SQL: String or binary data would be truncated."&lt;BR /&gt;My problem is that I have trouble debugging the issue and applying Text.Start to the affected columns doesn't work &lt;EM&gt;probably?&lt;/EM&gt;&amp;nbsp; The different ways of gauging the maximum string length in these columns give different results, 120 or 126 depending on how I do it.&amp;nbsp;&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN&gt;An example script is below, and the returned length for each block is added as a comment. The Column's width in the destination table is 120, and the dataflow refresh fails with the above error, so 1 and 4 are likely correct, but I don't understand how these differing results are possible at all.&amp;nbsp;&lt;/SPAN&gt;&lt;/P&gt;&lt;DIV&gt;&lt;PRE&gt;&lt;SPAN&gt;TabTextCut = Table.TransformColumnTypes(Table.TransformColumns(TabInhalt, {{"t_name", each Text.Start(_, 120)}}), {{"t_name", type text}})&lt;BR /&gt;,TargetTable = Table.AddColumn(&lt;/SPAN&gt;&lt;SPAN&gt;//temp-table, used by methods 1-3&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp; &amp;nbsp; TabTextCut, &lt;/SPAN&gt;&lt;SPAN&gt;"text_length"&lt;/SPAN&gt;&lt;SPAN&gt;, &lt;/SPAN&gt;&lt;SPAN&gt;each&lt;/SPAN&gt;&lt;SPAN&gt; [t_name] //Add column "text_length" as copy of "t_name&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp; )&lt;BR /&gt;&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp; &lt;/SPAN&gt;&lt;SPAN&gt;//126&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp; ,LongestString = List.Max(&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp; &amp;nbsp; List.Transform(&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; Table.ToList(&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; Table.SelectColumns(&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; TargetTable, &lt;/SPAN&gt;&lt;SPAN&gt;"text_length"&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; )&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; ), Text.Length&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp; &amp;nbsp; )&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp; )&lt;BR /&gt;&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp; &lt;/SPAN&gt;&lt;SPAN&gt;//120&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp; ,LongestStringAlt = List.Max(&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp; &amp;nbsp; List.Transform(&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; Table.ToList(&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; Table.SelectColumns(&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; Table.TransformColumns(&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; TargetTable, {{&lt;/SPAN&gt;&lt;SPAN&gt;"text_length"&lt;/SPAN&gt;&lt;SPAN&gt;, &lt;/SPAN&gt;&lt;FONT size="2"&gt;&lt;SPAN&gt;(tex &lt;/SPAN&gt;&lt;SPAN&gt;as&lt;/SPAN&gt;&lt;SPAN&gt; nullable &lt;/SPAN&gt;&lt;SPAN&gt;text&lt;/SPAN&gt;&lt;SPAN&gt;) &lt;/SPAN&gt;&lt;SPAN&gt;as&lt;/SPAN&gt;&lt;SPAN&gt; nullable &lt;/SPAN&gt;&lt;SPAN&gt;text&lt;/SPAN&gt;&lt;SPAN&gt; =&amp;gt; Text.From(Text.Length(tex)&lt;/SPAN&gt;&lt;/FONT&gt;&lt;SPAN&gt;}} &lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; ), &lt;/SPAN&gt;&lt;SPAN&gt;"text_length"&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; )&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; ), Number.FromText&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp; &amp;nbsp; )&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp; )&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp; &lt;/SPAN&gt;&lt;SPAN&gt;//120&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp; ,LongestStringTable = Table.First(&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp; &amp;nbsp; Table.Sort(&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; Table.TransformColumns(&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; TargetTable, {{&lt;/SPAN&gt;&lt;SPAN&gt;"text_length"&lt;/SPAN&gt;&lt;SPAN&gt;, Text.Length}}&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; ), {&lt;/SPAN&gt;&lt;SPAN&gt;"text_length"&lt;/SPAN&gt;&lt;SPAN&gt;, Order.Descending}&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp; &amp;nbsp; )&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp; )[text_length]&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp; &lt;/SPAN&gt;&lt;SPAN&gt;//126&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp; ,LongestStringDirect = List.Max(&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp; &amp;nbsp; List.Transform(&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; Table.ToList(&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; Table.SelectColumns(TabTextCut, &lt;/SPAN&gt;&lt;SPAN&gt;"t_name"&lt;/SPAN&gt;&lt;SPAN&gt;) //Explicitely not TargetTable&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; )&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; , Text.Length&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp; &amp;nbsp; )&lt;/SPAN&gt;&lt;/PRE&gt;&lt;P&gt;Edit:&lt;BR /&gt;I have, as a test, cut off every string after the first letter with Text.Start(_, 1). The debug function below still manages to return maximum string lengths of 4 somehow. base_table is the table I am examining, column_length_map stores each column name of base_table, their data type and, for text types, their allowed length.&lt;/P&gt;&lt;DIV&gt;&lt;PRE&gt;&lt;SPAN&gt;(base_table &lt;/SPAN&gt;&lt;SPAN&gt;as&lt;/SPAN&gt; &lt;SPAN&gt;table&lt;/SPAN&gt;&lt;SPAN&gt;, column_length_map &lt;/SPAN&gt;&lt;SPAN&gt;as&lt;/SPAN&gt; &lt;SPAN&gt;table&lt;/SPAN&gt;&lt;SPAN&gt;) &lt;/SPAN&gt;&lt;SPAN&gt;as&lt;/SPAN&gt; &lt;SPAN&gt;table&lt;/SPAN&gt;&lt;SPAN&gt; =&amp;gt; &lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;let&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp; StringCols = Table.SelectRows(column_length_map, &lt;/SPAN&gt;&lt;SPAN&gt;each&lt;/SPAN&gt;&lt;SPAN&gt; [data_type] = &lt;/SPAN&gt;&lt;SPAN&gt;"char"&lt;/SPAN&gt;&lt;SPAN&gt; or [data_type] = &lt;/SPAN&gt;&lt;SPAN&gt;"varchar"&lt;/SPAN&gt;&lt;SPAN&gt;),&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp; test2 = Table.AddColumn(Table.SelectColumns(StringCols, &lt;/SPAN&gt;&lt;SPAN&gt;"staging_column"&lt;/SPAN&gt;&lt;SPAN&gt;), &lt;/SPAN&gt;&lt;SPAN&gt;"length"&lt;/SPAN&gt;&lt;SPAN&gt;, &lt;/SPAN&gt;&lt;SPAN&gt;each&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; List.Max(&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; List.Transform(&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; Table.ToList(&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; Table.SelectColumns(base_table, Record.Field(_, &lt;/SPAN&gt;&lt;SPAN&gt;"staging_column"&lt;/SPAN&gt;&lt;SPAN&gt;))&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; )&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; , (val) =&amp;gt; Text.Length(val)&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; )&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; )&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp; )&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp; , test3 = Table.Join(test2, &lt;/SPAN&gt;&lt;SPAN&gt;"staging_column"&lt;/SPAN&gt;&lt;SPAN&gt;, Table.SelectColumns(column_length_map, {&lt;/SPAN&gt;&lt;SPAN&gt;"staging_column"&lt;/SPAN&gt;&lt;SPAN&gt;, &lt;/SPAN&gt;&lt;SPAN&gt;"max_length"&lt;/SPAN&gt;&lt;SPAN&gt;}), &lt;/SPAN&gt;&lt;SPAN&gt;"staging_column"&lt;/SPAN&gt;&lt;SPAN&gt;, JoinKind.Inner)&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;in&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp; test3&lt;/SPAN&gt;&lt;/PRE&gt;&lt;/DIV&gt;&lt;/DIV&gt;</description>
      <pubDate>Wed, 07 Aug 2024 11:50:15 GMT</pubDate>
      <guid>https://community.fabric.microsoft.com/t5/Dataflow/Why-are-text-lengths-different/m-p/4086484#M3571</guid>
      <dc:creator>rvp_ordix</dc:creator>
      <dc:date>2024-08-07T11:50:15Z</dc:date>
    </item>
    <item>
      <title>Re: Why are text lengths different?</title>
      <link>https://community.fabric.microsoft.com/t5/Dataflow/Why-are-text-lengths-different/m-p/4087081#M3577</link>
      <description>&lt;P&gt;Remember that strings are Unicode (specifically UCS2) so two bytes per character.&amp;nbsp; I guess the extra two bytes come from the string terminator 0x0000&lt;/P&gt;</description>
      <pubDate>Wed, 07 Aug 2024 15:09:57 GMT</pubDate>
      <guid>https://community.fabric.microsoft.com/t5/Dataflow/Why-are-text-lengths-different/m-p/4087081#M3577</guid>
      <dc:creator>lbendlin</dc:creator>
      <dc:date>2024-08-07T15:09:57Z</dc:date>
    </item>
    <item>
      <title>Re: Why are text lengths different?</title>
      <link>https://community.fabric.microsoft.com/t5/Dataflow/Why-are-text-lengths-different/m-p/4089185#M3585</link>
      <description>&lt;P&gt;Oh dear, would be both possible as well as irritating. I'll take another look, thanks.&amp;nbsp;&lt;/P&gt;</description>
      <pubDate>Thu, 08 Aug 2024 12:10:26 GMT</pubDate>
      <guid>https://community.fabric.microsoft.com/t5/Dataflow/Why-are-text-lengths-different/m-p/4089185#M3585</guid>
      <dc:creator>rvp_ordix</dc:creator>
      <dc:date>2024-08-08T12:10:26Z</dc:date>
    </item>
    <item>
      <title>Re: Why are text lengths different?</title>
      <link>https://community.fabric.microsoft.com/t5/Dataflow/Why-are-text-lengths-different/m-p/4108810#M3667</link>
      <description>&lt;P&gt;Hi&amp;nbsp;&lt;a href="javascript:void(0)" data-lia-user-mentions="" data-lia-user-uid="769835" data-lia-user-login="rvp_ordix" class="lia-mention lia-mention-user"&gt;rvp_ordix&lt;/a&gt;&amp;nbsp;,&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;Did Ibendlin reply solve your problem? If so, please mark it as the correct solution, and point out if the problem persists.&amp;nbsp;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&lt;SPAN&gt;Best Regards,&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;Adamk Kong&lt;/SPAN&gt;&lt;/P&gt;</description>
      <pubDate>Tue, 20 Aug 2024 08:56:25 GMT</pubDate>
      <guid>https://community.fabric.microsoft.com/t5/Dataflow/Why-are-text-lengths-different/m-p/4108810#M3667</guid>
      <dc:creator>Anonymous</dc:creator>
      <dc:date>2024-08-20T08:56:25Z</dc:date>
    </item>
    <item>
      <title>Re: Why are text lengths different?</title>
      <link>https://community.fabric.microsoft.com/t5/Dataflow/Why-are-text-lengths-different/m-p/4111068#M3669</link>
      <description>&lt;P&gt;Bit late I suppose but it wasn't an encoding issue. The dataset I was working on had quotation marks as part of the text and it seems that Text.Start and Text.Length both ignore those usually. If I convert the column to a list, however, then suddenly Text.Length counts the quotation marks and that's where the disparity in lengths came from.&amp;nbsp;&lt;BR /&gt;I'm also assuming (and this is somewhat hard to verify) that the quotation marks &lt;EM&gt;are&lt;/EM&gt; counted towards length when writing to my warehouse, but since the string Test.Start(_, 2) would cut the string '"testing"' to '"te' this leads to the errors I encountered.&lt;/P&gt;</description>
      <pubDate>Wed, 21 Aug 2024 11:15:28 GMT</pubDate>
      <guid>https://community.fabric.microsoft.com/t5/Dataflow/Why-are-text-lengths-different/m-p/4111068#M3669</guid>
      <dc:creator>rvp_ordix</dc:creator>
      <dc:date>2024-08-21T11:15:28Z</dc:date>
    </item>
    <item>
      <title>Re: Why are text lengths different?</title>
      <link>https://community.fabric.microsoft.com/t5/Dataflow/Why-are-text-lengths-different/m-p/4112363#M3683</link>
      <description>&lt;P&gt;Hi&amp;nbsp;&lt;a href="javascript:void(0)" data-lia-user-mentions="" data-lia-user-uid="769835" data-lia-user-login="rvp_ordix" class="lia-mention lia-mention-user"&gt;rvp_ordix&lt;/a&gt;&amp;nbsp;,&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;Thanks for your feeback.&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;Best regards,&lt;/P&gt;
&lt;P&gt;Adamk Kong&lt;/P&gt;</description>
      <pubDate>Thu, 22 Aug 2024 02:34:17 GMT</pubDate>
      <guid>https://community.fabric.microsoft.com/t5/Dataflow/Why-are-text-lengths-different/m-p/4112363#M3683</guid>
      <dc:creator>Anonymous</dc:creator>
      <dc:date>2024-08-22T02:34:17Z</dc:date>
    </item>
  </channel>
</rss>

