<?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 Oracle ORA-01401 when comparing long NVARCHAR2 columns with certain NLS settings in Alfresco Archive</title>
    <link>https://connect.hyland.com/t5/alfresco-archive/oracle-ora-01401-when-comparing-long-nvarchar2-columns-with/m-p/235475#M188605</link>
    <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;SPAN&gt;Hello everyone,&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;we're getting errors for queries to our &lt;/SPAN&gt;&lt;STRONG&gt;Oracle Express database version 11.2.0.2.0&lt;/STRONG&gt;&lt;SPAN&gt;.&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;An example:&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;PRE class="language-none line-numbers"&gt;&lt;CODE&gt;&lt;BR /&gt;### Error querying database. Cause: java.sql.SQLDataException: ORA-01401: inserted value too large for column ### The error may exist in org/activiti/db/mapping/entity/HistoricProcessInstance.xml ### The error may involve org.activiti.engine.impl.persistence.entity.HistoricProcessInstanceEntity.selectHistoricProcessInstancesWithVariablesByQueryCriteria-Inline ### The error occurred while setting parameters ### SQL: select * from ( select a.*, ROWNUM rnum from ( select distinct RES.*, DEF.KEY_ as PROC_DEF_KEY_, DEF.NAME_ as PROC_DEF_NAME_, DEF.VERSION_ as PROC_DEF_VERSION_, DEF.DEPLOYMENT_ID_ as DEPLOYMENT_ID_, VAR.ID_ as VAR_ID_, VAR.NAME_ as VAR_NAME_, VAR.VAR_TYPE_ as VAR_TYPE_, VAR.REV_ as VAR_REV_, VAR.PROC_INST_ID_ as VAR_PROC_INST_ID_, VAR.EXECUTION_ID_ as VAR_EXECUTION_ID_, VAR.TASK_ID_ as VAR_TASK_ID_, VAR.BYTEARRAY_ID_ as VAR_BYTEARRAY_ID_, VAR.DOUBLE_ as VAR_DOUBLE_, VAR.TEXT_ as VAR_TEXT_, VAR.TEXT2_ as VAR_TEXT2_, VAR.LAST_UPDATED_TIME_ as VAR_LAST_UPDATED_TIME_, VAR.LONG_ as VAR_LONG_ from ACT_HI_PROCINST RES left outer join ACT_RE_PROCDEF DEF on RES.PROC_DEF_ID_ = DEF.ID_ left outer join ACT_HI_VARINST VAR ON RES.PROC_INST_ID_ = VAR.EXECUTION_ID_ and VAR.TASK_ID_ is null inner join ACT_HI_VARINST A0 on RES.PROC_INST_ID_ = A0.PROC_INST_ID_ WHERE DEF.KEY_ = ? and A0.NAME_= ? and A0.VAR_TYPE_ = ? and A0.TEXT_ = ? order by VAR.LAST_UPDATED_TIME_ asc ) a where ROWNUM &amp;lt; ?) where rnum &amp;gt;= ? ### Cause: java.sql.SQLDataException: ORA-01401: inserted value too large for column&lt;BR /&gt;&lt;SPAN class="line-numbers-rows"&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/CODE&gt;&lt;/PRE&gt;&lt;BR /&gt;&lt;SPAN&gt;As far as I can tell, this happens when the following conditions are met:&lt;/SPAN&gt;&lt;BR /&gt;&lt;UL&gt;&lt;LI&gt;&lt;PRE class="language-none line-numbers"&gt;&lt;CODE&gt;NLS_SORT&lt;SPAN class="line-numbers-rows"&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/CODE&gt;&lt;/PRE&gt; is set to &lt;PRE class="language-none line-numbers"&gt;&lt;CODE&gt;'BINARY_CI'&lt;SPAN class="line-numbers-rows"&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/CODE&gt;&lt;/PRE&gt;,&lt;/LI&gt;&lt;LI&gt;&lt;PRE class="language-none line-numbers"&gt;&lt;CODE&gt;NLS_COMP&lt;SPAN class="line-numbers-rows"&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/CODE&gt;&lt;/PRE&gt; is set to &lt;PRE class="language-none line-numbers"&gt;&lt;CODE&gt;'LINGUISTIC'&lt;SPAN class="line-numbers-rows"&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/CODE&gt;&lt;/PRE&gt;,&lt;/LI&gt;&lt;LI&gt;the length of any &lt;PRE class="language-none line-numbers"&gt;&lt;CODE&gt;TEXT_&lt;SPAN class="line-numbers-rows"&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/CODE&gt;&lt;/PRE&gt; column subject to comparison is 1000 or more,&lt;/LI&gt;&lt;LI&gt;and a comparison or sort is attempted against the column without conversion to &lt;PRE class="language-none line-numbers"&gt;&lt;CODE&gt;CHAR&lt;SPAN class="line-numbers-rows"&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/CODE&gt;&lt;/PRE&gt;.&lt;/LI&gt;&lt;/UL&gt;&lt;SPAN&gt;If I change &lt;/SPAN&gt;&lt;PRE class="language-none line-numbers"&gt;&lt;CODE&gt;NLS_SORT&lt;SPAN class="line-numbers-rows"&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/CODE&gt;&lt;/PRE&gt;&lt;SPAN&gt; or &lt;/SPAN&gt;&lt;PRE class="language-none line-numbers"&gt;&lt;CODE&gt;NLS_COMP&lt;SPAN class="line-numbers-rows"&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/CODE&gt;&lt;/PRE&gt;&lt;SPAN&gt; to &lt;/SPAN&gt;&lt;PRE class="language-none line-numbers"&gt;&lt;CODE&gt;'BINARY'&lt;SPAN class="line-numbers-rows"&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/CODE&gt;&lt;/PRE&gt;&lt;SPAN&gt;, it works.&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;If I truncate all &lt;/SPAN&gt;&lt;PRE class="language-none line-numbers"&gt;&lt;CODE&gt;TEXT_&lt;SPAN class="line-numbers-rows"&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/CODE&gt;&lt;/PRE&gt;&lt;SPAN&gt; columns to 999 (but not 1000) characters, it works.&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;It also works in cases where the comparison is initiated as case insensitive (with &lt;/SPAN&gt;&lt;PRE class="language-none line-numbers"&gt;&lt;CODE&gt;variableValueEqualsIgnoreCase()&lt;SPAN class="line-numbers-rows"&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/CODE&gt;&lt;/PRE&gt;&lt;SPAN&gt;), because that rewrites &lt;/SPAN&gt;&lt;PRE class="language-none line-numbers"&gt;&lt;CODE&gt;TEXT_&lt;SPAN class="line-numbers-rows"&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/CODE&gt;&lt;/PRE&gt;&lt;SPAN&gt; to &lt;/SPAN&gt;&lt;PRE class="language-none line-numbers"&gt;&lt;CODE&gt;lower(TEXT_)&lt;SPAN class="line-numbers-rows"&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/CODE&gt;&lt;/PRE&gt;&lt;SPAN&gt;, which converts the column type to &lt;/SPAN&gt;&lt;PRE class="language-none line-numbers"&gt;&lt;CODE&gt;CHAR&lt;SPAN class="line-numbers-rows"&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/CODE&gt;&lt;/PRE&gt;&lt;SPAN&gt;. Just doing &lt;/SPAN&gt;&lt;PRE class="language-none line-numbers"&gt;&lt;CODE&gt;to_char(TEXT_)&lt;SPAN class="line-numbers-rows"&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/CODE&gt;&lt;/PRE&gt;&lt;SPAN&gt; also works.&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;I don't know why this is so. It may be a bug in the database, but with Oracle's non existent documentation, it's hard to tell if this is by design or not. A possible solution is removing Activiti's &lt;/SPAN&gt;&lt;PRE class="language-none line-numbers"&gt;&lt;CODE&gt;SET_NLS_LOGON&lt;SPAN class="line-numbers-rows"&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/CODE&gt;&lt;/PRE&gt;&lt;SPAN&gt; trigger, but is that safe? I'm not sure why the trigger is needed, as case insensitive comparisons already use &lt;/SPAN&gt;&lt;PRE class="language-none line-numbers"&gt;&lt;CODE&gt;lower()&lt;SPAN class="line-numbers-rows"&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/CODE&gt;&lt;/PRE&gt;&lt;SPAN&gt; when comparing strings.&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;Thanks for reading,&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;Matej&lt;/SPAN&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
    <pubDate>Wed, 21 Sep 2016 13:38:12 GMT</pubDate>
    <dc:creator>matej1</dc:creator>
    <dc:date>2016-09-21T13:38:12Z</dc:date>
    <item>
      <title>Oracle ORA-01401 when comparing long NVARCHAR2 columns with certain NLS settings</title>
      <link>https://connect.hyland.com/t5/alfresco-archive/oracle-ora-01401-when-comparing-long-nvarchar2-columns-with/m-p/235475#M188605</link>
      <description>Hello everyone,we're getting errors for queries to our Oracle Express database version 11.2.0.2.0.An example:### Error querying database. Cause: java.sql.SQLDataException: ORA-01401: inserted value too large for column ### The error may exist in org/activiti/db/mapping/entity/HistoricProcessInstance</description>
      <pubDate>Wed, 21 Sep 2016 13:38:12 GMT</pubDate>
      <guid>https://connect.hyland.com/t5/alfresco-archive/oracle-ora-01401-when-comparing-long-nvarchar2-columns-with/m-p/235475#M188605</guid>
      <dc:creator>matej1</dc:creator>
      <dc:date>2016-09-21T13:38:12Z</dc:date>
    </item>
    <item>
      <title>Re: Oracle ORA-01401 when comparing long NVARCHAR2 columns with certain NLS settings</title>
      <link>https://connect.hyland.com/t5/alfresco-archive/oracle-ora-01401-when-comparing-long-nvarchar2-columns-with/m-p/235476#M188606</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;SPAN&gt;Just a small correction: removing the trigger won't fully correct the issue, as the default &lt;/SPAN&gt;&lt;CODE&gt;NLS_SORT&lt;/CODE&gt;&lt;SPAN&gt; is set from &lt;/SPAN&gt;&lt;CODE&gt;NLS_LANGUAGE&lt;/CODE&gt;&lt;SPAN&gt;, and sorts don't work if it's anything but &lt;/SPAN&gt;&lt;CODE&gt;'BINARY'&lt;/CODE&gt;&lt;SPAN&gt;. Removing the trigger does fix comparisons clauses though.&lt;/SPAN&gt;&lt;BR /&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Wed, 21 Sep 2016 13:46:09 GMT</pubDate>
      <guid>https://connect.hyland.com/t5/alfresco-archive/oracle-ora-01401-when-comparing-long-nvarchar2-columns-with/m-p/235476#M188606</guid>
      <dc:creator>matej1</dc:creator>
      <dc:date>2016-09-21T13:46:09Z</dc:date>
    </item>
    <item>
      <title>Re: Oracle ORA-01401 when comparing long NVARCHAR2 columns with certain NLS settings</title>
      <link>https://connect.hyland.com/t5/alfresco-archive/oracle-ora-01401-when-comparing-long-nvarchar2-columns-with/m-p/235477#M188607</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;SPAN&gt;Oh, another possible solution would be to convert all &lt;/SPAN&gt;&lt;CODE&gt;NVARCHAR2&lt;/CODE&gt;&lt;SPAN&gt; columns to &lt;/SPAN&gt;&lt;CODE&gt;VARCHAR2&lt;/CODE&gt;&lt;SPAN&gt;, and is the solution I'm currently leaning towards.&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;By browsing StackOverflow I got the impression that &lt;/SPAN&gt;&lt;CODE&gt;NVARCHAR2&lt;/CODE&gt;&lt;SPAN&gt; is more of a legacy feature for non Unicode databases.&lt;/SPAN&gt;&lt;BR /&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Wed, 21 Sep 2016 15:43:07 GMT</pubDate>
      <guid>https://connect.hyland.com/t5/alfresco-archive/oracle-ora-01401-when-comparing-long-nvarchar2-columns-with/m-p/235477#M188607</guid>
      <dc:creator>matej1</dc:creator>
      <dc:date>2016-09-21T15:43:07Z</dc:date>
    </item>
  </channel>
</rss>

