<?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>article ORA-12899: value too large for column in Official Support Articles</title>
    <link>https://community.qlik.com/t5/Official-Support-Articles/ORA-12899-value-too-large-for-column/ta-p/1866401</link>
    <description>&lt;P&gt;When replicating to Oracle target, in some cases you may get ORA-12899 error.&lt;/P&gt;
&lt;P&gt;This error may happen in a situation where your Oracle target has &lt;STRONG&gt;NLS_LENGTH_SEMANTICS&lt;/STRONG&gt; set to ‘&lt;STRONG&gt;byte&lt;/STRONG&gt;’ and the column being replicated from the source endpoint to the Oracle target endpoint includes at Unicode character/s that is presented by more than one byte. In this case, for example, when you replicate a varchar (10), it will be created as varchar (10 byte). Therefore, if the replicated data in the source endpoint includes a Unicode character that in UTF8 is presented by more than one byte, it could be that although the source is only 10 characters, on target endpoint (where replicate works in utf8), it would require more than 10 bytes for presenting its value. This will result with ORA-12899 error.&lt;/P&gt;
&lt;P&gt;In general, when working with Oracle, the &lt;STRONG&gt;NLS_LENGTH_SEMANTICS&amp;nbsp;setting determines how the CHAR&amp;nbsp;and&amp;nbsp;VARCHAR2&amp;nbsp;columns will be created&lt;/STRONG&gt;. i.e., it enables you to create&amp;nbsp;CHAR&amp;nbsp;and&amp;nbsp;VARCHAR2&amp;nbsp;columns using either byte or character length semantics.&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;H4&gt;&lt;FONT color="#339966"&gt;&lt;STRONG&gt;Environment&lt;/STRONG&gt;&lt;/FONT&gt;&lt;/H4&gt;
&lt;UL&gt;
&lt;LI&gt;Replicate with Oracle target endpoint&lt;/LI&gt;
&lt;/UL&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;H3&gt;&lt;FONT color="#339966"&gt;&lt;STRONG&gt;Resolution&lt;/STRONG&gt;&lt;/FONT&gt;&lt;/H3&gt;
&lt;OL&gt;
&lt;LI&gt;Stop the task&lt;/LI&gt;
&lt;LI&gt;Open the Oracle target endpoint, go to under Advanced tab--&amp;gt;Internal Parameters.&lt;BR /&gt;In the search box type &lt;STRONG&gt;charLengthSemantics&lt;/STRONG&gt; and set it to &lt;STRONG&gt;CHAR&lt;/STRONG&gt;. This will cause Replicate to create CHAR&amp;nbsp;and&amp;nbsp;VARCHAR2&amp;nbsp;columns using char semantics. For example: COL1 VARCHAR2(10 CHAR) instead of COL1 VARCHAR2(10 BYTES), and this will make sure that column length will be long enough to hold its value (including Unicode characters) and thus eliminate the ORA-12899 error.&lt;/LI&gt;
&lt;/OL&gt;
&lt;P&gt;&lt;U&gt;Note&lt;/U&gt;:&lt;/P&gt;
&lt;UL&gt;
&lt;LI&gt;This internal property in Replicate charLengthSemantics determines whether to use the oracle default of NLS_LENGTH_SEMANTICS or override it.&lt;/LI&gt;
&lt;LI&gt;The NLS_LENGTH_SEMANTICS/charLengthSemantics setting affects &lt;U&gt;any&lt;/U&gt; CHAR&amp;nbsp;and&amp;nbsp;VARCHAR2&amp;nbsp;columns in any table that Replicate creates in the target endpoint&lt;/LI&gt;
&lt;/UL&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;</description>
    <pubDate>Tue, 14 Dec 2021 10:19:59 GMT</pubDate>
    <dc:creator>OritA</dc:creator>
    <dc:date>2021-12-14T10:19:59Z</dc:date>
    <item>
      <title>ORA-12899: value too large for column</title>
      <link>https://community.qlik.com/t5/Official-Support-Articles/ORA-12899-value-too-large-for-column/ta-p/1866401</link>
      <description>&lt;P&gt;When replicating to Oracle target, in some cases you may get ORA-12899 error.&lt;/P&gt;
&lt;P&gt;This error may happen in a situation where your Oracle target has &lt;STRONG&gt;NLS_LENGTH_SEMANTICS&lt;/STRONG&gt; set to ‘&lt;STRONG&gt;byte&lt;/STRONG&gt;’ and the column being replicated from the source endpoint to the Oracle target endpoint includes at Unicode character/s that is presented by more than one byte. In this case, for example, when you replicate a varchar (10), it will be created as varchar (10 byte). Therefore, if the replicated data in the source endpoint includes a Unicode character that in UTF8 is presented by more than one byte, it could be that although the source is only 10 characters, on target endpoint (where replicate works in utf8), it would require more than 10 bytes for presenting its value. This will result with ORA-12899 error.&lt;/P&gt;
&lt;P&gt;In general, when working with Oracle, the &lt;STRONG&gt;NLS_LENGTH_SEMANTICS&amp;nbsp;setting determines how the CHAR&amp;nbsp;and&amp;nbsp;VARCHAR2&amp;nbsp;columns will be created&lt;/STRONG&gt;. i.e., it enables you to create&amp;nbsp;CHAR&amp;nbsp;and&amp;nbsp;VARCHAR2&amp;nbsp;columns using either byte or character length semantics.&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;H4&gt;&lt;FONT color="#339966"&gt;&lt;STRONG&gt;Environment&lt;/STRONG&gt;&lt;/FONT&gt;&lt;/H4&gt;
&lt;UL&gt;
&lt;LI&gt;Replicate with Oracle target endpoint&lt;/LI&gt;
&lt;/UL&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;H3&gt;&lt;FONT color="#339966"&gt;&lt;STRONG&gt;Resolution&lt;/STRONG&gt;&lt;/FONT&gt;&lt;/H3&gt;
&lt;OL&gt;
&lt;LI&gt;Stop the task&lt;/LI&gt;
&lt;LI&gt;Open the Oracle target endpoint, go to under Advanced tab--&amp;gt;Internal Parameters.&lt;BR /&gt;In the search box type &lt;STRONG&gt;charLengthSemantics&lt;/STRONG&gt; and set it to &lt;STRONG&gt;CHAR&lt;/STRONG&gt;. This will cause Replicate to create CHAR&amp;nbsp;and&amp;nbsp;VARCHAR2&amp;nbsp;columns using char semantics. For example: COL1 VARCHAR2(10 CHAR) instead of COL1 VARCHAR2(10 BYTES), and this will make sure that column length will be long enough to hold its value (including Unicode characters) and thus eliminate the ORA-12899 error.&lt;/LI&gt;
&lt;/OL&gt;
&lt;P&gt;&lt;U&gt;Note&lt;/U&gt;:&lt;/P&gt;
&lt;UL&gt;
&lt;LI&gt;This internal property in Replicate charLengthSemantics determines whether to use the oracle default of NLS_LENGTH_SEMANTICS or override it.&lt;/LI&gt;
&lt;LI&gt;The NLS_LENGTH_SEMANTICS/charLengthSemantics setting affects &lt;U&gt;any&lt;/U&gt; CHAR&amp;nbsp;and&amp;nbsp;VARCHAR2&amp;nbsp;columns in any table that Replicate creates in the target endpoint&lt;/LI&gt;
&lt;/UL&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;</description>
      <pubDate>Tue, 14 Dec 2021 10:19:59 GMT</pubDate>
      <guid>https://community.qlik.com/t5/Official-Support-Articles/ORA-12899-value-too-large-for-column/ta-p/1866401</guid>
      <dc:creator>OritA</dc:creator>
      <dc:date>2021-12-14T10:19:59Z</dc:date>
    </item>
    <item>
      <title>Re: ORA-12899: value too large for column</title>
      <link>https://community.qlik.com/t5/Official-Support-Articles/ORA-12899-value-too-large-for-column/tac-p/2522805#M16038</link>
      <description>&lt;P&gt;Thank you very much, it seems that this parameter solved my problem, in the same job I also have this message:&amp;nbsp;Column 'ADDITIONAL_CONTACTS' was removed from table definition 'DEVADT.ADT2_PATIENT_AUD': the column data type is LOB and the table has no primary key or unique index&lt;/P&gt;&lt;P&gt;No way to transfer lob in tables where no PK is present? I need to create a PK in advance?&lt;/P&gt;&lt;P&gt;Thank you again for your support&lt;/P&gt;</description>
      <pubDate>Tue, 01 Jul 2025 12:30:23 GMT</pubDate>
      <guid>https://community.qlik.com/t5/Official-Support-Articles/ORA-12899-value-too-large-for-column/tac-p/2522805#M16038</guid>
      <dc:creator>gaegig</dc:creator>
      <dc:date>2025-07-01T12:30:23Z</dc:date>
    </item>
    <item>
      <title>Re: ORA-12899: value too large for column</title>
      <link>https://community.qlik.com/t5/Official-Support-Articles/ORA-12899-value-too-large-for-column/tac-p/2523366#M16074</link>
      <description>&lt;P&gt;Hi&amp;nbsp;&lt;a href="https://community.qlik.com/t5/user/viewprofilepage/user-id/165566"&gt;@gaegig&lt;/a&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;Yes, a PK is required for tables with LOB columns that are being replicated. This is so Qlik Replicate can efficiently look up the LOB value in the event that not all of it is stored in the redo log. Without a PK, a full table scan would occur for every LOB value that needed to be looked up, which would cause horrible performance leading the task to fall behind consistently.&lt;/P&gt;
&lt;P&gt;Thanks,&lt;/P&gt;
&lt;P&gt;Dana&lt;/P&gt;</description>
      <pubDate>Mon, 07 Jul 2025 20:40:07 GMT</pubDate>
      <guid>https://community.qlik.com/t5/Official-Support-Articles/ORA-12899-value-too-large-for-column/tac-p/2523366#M16074</guid>
      <dc:creator>Dana_Baldwin</dc:creator>
      <dc:date>2025-07-07T20:40:07Z</dc:date>
    </item>
  </channel>
</rss>

