<?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 Re: Column constraint change is not replicated (Oracle to MSSQL) in Qlik Replicate</title>
    <link>https://community.qlik.com/t5/Qlik-Replicate/Column-constraint-change-is-not-replicated-Oracle-to-MSSQL/m-p/2420139#M9540</link>
    <description>&lt;P&gt;Hello&amp;nbsp;&lt;a href="https://community.qlik.com/t5/user/viewprofilepage/user-id/209188"&gt;@martinkaru&lt;/a&gt;&amp;nbsp;,&lt;/P&gt;
&lt;P&gt;Thanks for reaching out to Qlik Community!&lt;/P&gt;
&lt;P&gt;The behavior cannot be reproduced in my labs. In my Replicate 2023.5.0.701 task "Ora-to-SQL", The Oracle source side DDL:&lt;/P&gt;
&lt;P&gt;&lt;FONT face="courier new,courier"&gt;alter table testddl modify (name varchar(20) null);&lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;We got below lines in task log file:&lt;/P&gt;
&lt;P&gt;&lt;FONT face="courier new,courier"&gt;2024-02-16T23:21:02:72303 [SOURCE_CAPTURE ]V: Build DDL event with operation code 101 for table 'SCOTT.TESTDDL', part 1 from 1, SQL statement is &amp;lt;alter table testddl modify (name varchar(20) null)&amp;gt; (oradcdc_parse.c:3677)&lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;&amp;amp;&lt;/P&gt;
&lt;P&gt;&lt;FONT face="courier new,courier"&gt;2024-02-16T23:21:02:817054 [SOURCE_CAPTURE ]V: DDL for object 'SCOTT.TESTDDL' is ignored (oracle_endpoint_capture.c:2235)&lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;In summary, Qlik Replicate will ignore this type DDL rather than get table suspended or other error status.&lt;/P&gt;
&lt;P&gt;Please let us know what's the result after Replicate upgrade.&lt;/P&gt;
&lt;P&gt;Thanks,&lt;/P&gt;
&lt;P&gt;John.&lt;/P&gt;</description>
    <pubDate>Fri, 16 Feb 2024 15:37:49 GMT</pubDate>
    <dc:creator>john_wang</dc:creator>
    <dc:date>2024-02-16T15:37:49Z</dc:date>
    <item>
      <title>Column constraint change is not replicated (Oracle to MSSQL)</title>
      <link>https://community.qlik.com/t5/Qlik-Replicate/Column-constraint-change-is-not-replicated-Oracle-to-MSSQL/m-p/2420118#M9539</link>
      <description>&lt;P&gt;The replication task is working, we change a column from NOT NULL -&amp;gt; NULL and the task gets suspended.&lt;/P&gt;
&lt;P&gt;The task's DDL Handling policy says: "When source table is altered: ALTER target table"&lt;/P&gt;
&lt;P&gt;At the moment, the tool is version 2022.11.0.208, we will upgrade it next week&lt;/P&gt;
&lt;P&gt;&lt;LI-PRODUCT title="Qlik Replicate" id="qlikReplicate"&gt;&lt;/LI-PRODUCT&gt;&amp;nbsp;&lt;/P&gt;</description>
      <pubDate>Fri, 16 Feb 2024 15:08:32 GMT</pubDate>
      <guid>https://community.qlik.com/t5/Qlik-Replicate/Column-constraint-change-is-not-replicated-Oracle-to-MSSQL/m-p/2420118#M9539</guid>
      <dc:creator>martinkaru</dc:creator>
      <dc:date>2024-02-16T15:08:32Z</dc:date>
    </item>
    <item>
      <title>Re: Column constraint change is not replicated (Oracle to MSSQL)</title>
      <link>https://community.qlik.com/t5/Qlik-Replicate/Column-constraint-change-is-not-replicated-Oracle-to-MSSQL/m-p/2420139#M9540</link>
      <description>&lt;P&gt;Hello&amp;nbsp;&lt;a href="https://community.qlik.com/t5/user/viewprofilepage/user-id/209188"&gt;@martinkaru&lt;/a&gt;&amp;nbsp;,&lt;/P&gt;
&lt;P&gt;Thanks for reaching out to Qlik Community!&lt;/P&gt;
&lt;P&gt;The behavior cannot be reproduced in my labs. In my Replicate 2023.5.0.701 task "Ora-to-SQL", The Oracle source side DDL:&lt;/P&gt;
&lt;P&gt;&lt;FONT face="courier new,courier"&gt;alter table testddl modify (name varchar(20) null);&lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;We got below lines in task log file:&lt;/P&gt;
&lt;P&gt;&lt;FONT face="courier new,courier"&gt;2024-02-16T23:21:02:72303 [SOURCE_CAPTURE ]V: Build DDL event with operation code 101 for table 'SCOTT.TESTDDL', part 1 from 1, SQL statement is &amp;lt;alter table testddl modify (name varchar(20) null)&amp;gt; (oradcdc_parse.c:3677)&lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;&amp;amp;&lt;/P&gt;
&lt;P&gt;&lt;FONT face="courier new,courier"&gt;2024-02-16T23:21:02:817054 [SOURCE_CAPTURE ]V: DDL for object 'SCOTT.TESTDDL' is ignored (oracle_endpoint_capture.c:2235)&lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;In summary, Qlik Replicate will ignore this type DDL rather than get table suspended or other error status.&lt;/P&gt;
&lt;P&gt;Please let us know what's the result after Replicate upgrade.&lt;/P&gt;
&lt;P&gt;Thanks,&lt;/P&gt;
&lt;P&gt;John.&lt;/P&gt;</description>
      <pubDate>Fri, 16 Feb 2024 15:37:49 GMT</pubDate>
      <guid>https://community.qlik.com/t5/Qlik-Replicate/Column-constraint-change-is-not-replicated-Oracle-to-MSSQL/m-p/2420139#M9540</guid>
      <dc:creator>john_wang</dc:creator>
      <dc:date>2024-02-16T15:37:49Z</dc:date>
    </item>
    <item>
      <title>Re: Column constraint change is not replicated (Oracle to MSSQL)</title>
      <link>https://community.qlik.com/t5/Qlik-Replicate/Column-constraint-change-is-not-replicated-Oracle-to-MSSQL/m-p/2435684#M10343</link>
      <description>&lt;P&gt;Hi,&amp;nbsp;&lt;a href="https://community.qlik.com/t5/user/viewprofilepage/user-id/115309"&gt;@john_wang&lt;/a&gt;!&lt;/P&gt;
&lt;P&gt;Thanks for the reply! We upgraded Qlik, however, the problem persisted.&lt;/P&gt;
&lt;P&gt;More exact examples:&amp;nbsp;&lt;SPAN&gt;(Oracle to Azure SQL)&lt;/SPAN&gt;&lt;/P&gt;
&lt;BLOCKQUOTE&gt;&lt;HR /&gt;Handling End of table 'confact'.'CF2_RELATION' loading failed by subtask 1 thread 1&lt;BR /&gt;Commit rows failed&lt;BR /&gt;RetCode: SQL_SUCCESS SqlState: 23000 NativeError: 515 Message: [Microsoft][ODBC Driver 18 for SQL Server][SQL Server]Cannot insert the value NULL into column 'REL_DOSSIER', table 'sqldb-ingestion02.confact.CF2_RELATION'; column does not allow nulls. INSERT fails.&lt;HR /&gt;&lt;/BLOCKQUOTE&gt;
&lt;P&gt;and&lt;/P&gt;
&lt;BLOCKQUOTE&gt;Table 'APPHAVRECHT'.'CF2_RELATION' (subtask 1 thread 1) is suspended. &lt;BR /&gt;RetCode: SQL_SUCCESS &lt;BR /&gt;SqlState: 23000 &lt;BR /&gt;NativeError: 515 &lt;BR /&gt;Message: [Microsoft][ODBC Driver 18 for SQL Server][SQL Server]Cannot insert the value NULL into column 'REL_DOSSIER', table 'sqldb-ingestion02.confact.CF2_RELATION'; column does not allow nulls. INSERT fails.; Commit rows failed; Handling End of table 'confact'.'CF2_RELATION' loading failed by subtask 1 thread 1&lt;BR /&gt;&lt;HR /&gt;&lt;/BLOCKQUOTE&gt;
&lt;P&gt;The DDL changes transfer is on&lt;/P&gt;</description>
      <pubDate>Thu, 28 Mar 2024 14:41:51 GMT</pubDate>
      <guid>https://community.qlik.com/t5/Qlik-Replicate/Column-constraint-change-is-not-replicated-Oracle-to-MSSQL/m-p/2435684#M10343</guid>
      <dc:creator>martinkaru</dc:creator>
      <dc:date>2024-03-28T14:41:51Z</dc:date>
    </item>
    <item>
      <title>Re: Column constraint change is not replicated (Oracle to MSSQL)</title>
      <link>https://community.qlik.com/t5/Qlik-Replicate/Column-constraint-change-is-not-replicated-Oracle-to-MSSQL/m-p/2435691#M10344</link>
      <description>&lt;P&gt;&amp;gt;&amp;gt;&amp;gt;&amp;nbsp;&lt;SPAN&gt;&lt;EM&gt;Cannot insert the value NULL into column 'REL_DOSSIER', table 'sqldb-ingestion02.confact.CF2_RELATION'; column does not allow null&lt;/EM&gt;s.&lt;/SPAN&gt;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;So what you are saying is that contrary to the topic title "&lt;SPAN&gt;Column constraint change is not replicated&amp;nbsp;" the constraint &lt;STRONG&gt;was&lt;/STRONG&gt; replicated. After that an insert failed because it (against expectations) did have a null value resulting in "Cannot insert the value NULL into column 'REL_DOSSIER', table 'sqldb-ingestion02.confact.CF2_RELATION'; column does not allow nulls". This proves that the constraint was replicated and honored. Agree?&lt;/SPAN&gt;&lt;/P&gt;
&lt;P&gt;&lt;SPAN&gt;Now I suspect that the source did NOT have a null value, but somehow the column value, thru Replicate, became null. The most likely reason for this is 'empty string handling, failing UTF converts. You may want to experiment with 'advanced' - 'internal parameters' on the Oracle source endpoints. elements like:&lt;/SPAN&gt;&lt;/P&gt;
&lt;LI-CODE lang="markup"&gt;alwaysReplaceEmptyString                 true,
emptyStringValue                         "
emptyVarCharStringValue                  "",
onlyForVarCharReplaceEmptyString          false,
&lt;/LI-CODE&gt;
&lt;P&gt;Be sure to first construct a little test with clear, known source values. Use "DUMP" on the Oracle side and HEX() or is it&amp;nbsp;SELECT CAST(xxx&amp;nbsp; AS VARBINARY()) on the target size.&lt;/P&gt;
&lt;P&gt;Hein.&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;</description>
      <pubDate>Thu, 28 Mar 2024 15:05:40 GMT</pubDate>
      <guid>https://community.qlik.com/t5/Qlik-Replicate/Column-constraint-change-is-not-replicated-Oracle-to-MSSQL/m-p/2435691#M10344</guid>
      <dc:creator>Heinvandenheuvel</dc:creator>
      <dc:date>2024-03-28T15:05:40Z</dc:date>
    </item>
  </channel>
</rss>

