<?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: tSQLTemplateMerge - Query statement generation error with Oracle 11g in Talend Studio</title>
    <link>https://community.qlik.com/t5/Talend-Studio/tSQLTemplateMerge-Query-statement-generation-error-with-Oracle/m-p/2369040#M132232</link>
    <description>Hi,
&lt;BR /&gt;In the view 'SQL Model' of your component, there is a list of models.
&lt;BR /&gt;Remove all and add OracleMerge one.
&lt;BR /&gt;Regards,
&lt;BR /&gt;Rudy</description>
    <pubDate>Tue, 14 Jan 2014 10:35:22 GMT</pubDate>
    <dc:creator>Anonymous</dc:creator>
    <dc:date>2014-01-14T10:35:22Z</dc:date>
    <item>
      <title>tSQLTemplateMerge - Query statement generation error with Oracle 11g</title>
      <link>https://community.qlik.com/t5/Talend-Studio/tSQLTemplateMerge-Query-statement-generation-error-with-Oracle/m-p/2369039#M132231</link>
      <description>Hi, 
&lt;BR /&gt;I am trying to use the tSQLTemplateMerge component to replace our current ETL PL/SQL statement. But I can not get it to work since it generates a wrong statement to the Oracle database. All the information is below. 
&lt;BR /&gt;Thanks in advance for your help. 
&lt;BR /&gt;Francois 
&lt;BR /&gt;Exception in component tSQLTemplateMerge_1 
&lt;BR /&gt;java.sql.BatchUpdateException: error occurred during batching: ORA-00971: missing SET keyword 
&lt;BR /&gt; at oracle.jdbc.driver.DatabaseError.throwBatchUpdateException(DatabaseError.java:687) 
&lt;BR /&gt; at oracle.jdbc.driver.DatabaseError.throwBatchUpdateException(DatabaseError.java:725) 
&lt;BR /&gt; at oracle.jdbc.driver.OracleStatement.executeBatch(OracleStatement.java:4113) 
&lt;BR /&gt; at oracle.jdbc.driver.OracleStatementWrapper.executeBatch(OracleStatementWrapper.java:211) 
&lt;BR /&gt; at hses_etl.empty_job_0_1.EMPTY_JOB.tSQLTemplateMerge_1Process(EMPTY_JOB.java:949) 
&lt;BR /&gt; at hses_etl.empty_job_0_1.EMPTY_JOB.tOracleConnection_1Process(EMPTY_JOB.java:754) 
&lt;BR /&gt; at hses_etl.empty_job_0_1.EMPTY_JOB.runJobInTOS(EMPTY_JOB.java:3792) 
&lt;BR /&gt; at hses_etl.empty_job_0_1.EMPTY_JOB.main(EMPTY_JOB.java:3535) 
&lt;BR /&gt;After debugging, I could locate part of the the merge SQL statement (mergeStringUpdate variable) that causes trouble. You can not have two tables in the update statement. Here it is : 
&lt;BR /&gt;Error starting at line 1 in command: 
&lt;BR /&gt;UPDATE FACT_PROGRAM_SUMMARY, 
&lt;BR /&gt; FACT_PROGRAM_SUMMARY_MERGE 
&lt;BR /&gt;SET FACT_PROGRAM_SUMMARY.GRANTEE_ID = FACT_PROGRAM_SUMMARY_MERGE.GRANTEE_ID, 
&lt;BR /&gt; FACT_PROGRAM_SUMMARY.REGIONAL_MANAGER_ID = FACT_PROGRAM_SUMMARY_MERGE.REGIONAL_MANAGER_ID, 
&lt;BR /&gt; FACT_PROGRAM_SUMMARY.GRANT_SPECIALIST_ID = FACT_PROGRAM_SUMMARY_MERGE.GRANT_SPECIALIST_ID, 
&lt;BR /&gt; FACT_PROGRAM_SUMMARY.REGIONAL_MANAGER_ID = FACT_PROGRAM_SUMMARY_MERGE.PROGRAM_SPECIALIST_ID, 
&lt;BR /&gt; FACT_PROGRAM_SUMMARY.TA_SPECIALIST_ID = FACT_PROGRAM_SUMMARY_MERGE.TA_SPECIALIST_ID, 
&lt;BR /&gt; FACT_PROGRAM_SUMMARY.TA_MANAGER_ID = FACT_PROGRAM_SUMMARY_MERGE.TA_MANAGER_ID, 
&lt;BR /&gt; FACT_PROGRAM_SUMMARY.PROGRAM_COUNT = FACT_PROGRAM_SUMMARY_MERGE.PROGRAM_COUNT 
&lt;BR /&gt;WHERE (FACT_PROGRAM_SUMMARY.GRANT_ID = FACT_PROGRAM_SUMMARY_MERGE.GRANT_ID 
&lt;BR /&gt;AND FACT_PROGRAM_SUMMARY.PROGRAM_ID = FACT_PROGRAM_SUMMARY_MERGE.PROGRAM_ID) 
&lt;BR /&gt;Error at Command Line:1 Column:27 
&lt;BR /&gt;Error report: 
&lt;BR /&gt;SQL Error: ORA-00971: missing SET keyword 
&lt;BR /&gt;00971. 00000 - "missing SET keyword" 
&lt;BR /&gt;*Cause: 
&lt;BR /&gt;*Action: 
&lt;BR /&gt; 
&lt;BR /&gt;The full correct MERGE SQL Statement that works with Oracle is - I was expecting to find somehow this generated by Talend component but could not find it while debugging: 
&lt;BR /&gt;MERGE INTO OHS_DATA_MART.FACT_PROGRAM_SUMMARY T 
&lt;BR /&gt; USING (SELECT (SELECT GRANT_ID 
&lt;BR /&gt; FROM OHS_DATA_MART.DIM_GRANT 
&lt;BR /&gt; WHERE GRANT_NUMBER = S.GRANT_NUMBER) AS GRANT_ID 
&lt;BR /&gt; ,(SELECT GRANTEE_ID 
&lt;BR /&gt; FROM OHS_DATA_MART.DIM_GRANTEE 
&lt;BR /&gt; WHERE ORGANIZATION_ID = S.ORGANIZATION_ID) AS GRANTEE_ID 
&lt;BR /&gt; ,(SELECT MAX(PROGRAM_ID) 
&lt;BR /&gt; FROM OHS_DATA_MART.DIM_PROGRAM 
&lt;BR /&gt; WHERE SYS_HS_PROGRAM_ID = S.SYS_HS_PROGRAM_ID 
&lt;BR /&gt; AND RECORD_CURRENT = 'Yes') AS PROGRAM_ID 
&lt;BR /&gt; ,NVL((SELECT REGIONAL_MANAGER_ID 
&lt;BR /&gt; FROM OHS_DATA_MART.DIM_REGIONAL_MANAGER 
&lt;BR /&gt; WHERE REGIONAL_MANAGER_FULL_NAME = S.REGIONAL_MANAGER), 0) AS REGIONAL_MANAGER_ID 
&lt;BR /&gt; ,NVL((SELECT GRANT_SPECIALIST_ID 
&lt;BR /&gt; FROM OHS_DATA_MART.DIM_GRANT_SPECIALIST 
&lt;BR /&gt; WHERE GRANT_SPECIALIST_FULL_NAME = S.GRANT_SPECIALIST), 0) AS GRANT_SPECIALIST_ID 
&lt;BR /&gt; ,NVL((SELECT PROGRAM_SPECIALIST_ID 
&lt;BR /&gt; FROM OHS_DATA_MART.DIM_PROGRAM_SPECIALIST 
&lt;BR /&gt; WHERE PROGRAM_SPECIALIST_FULL_NAME = S.PROGRAM_SPECIALIST), 0) AS PROGRAM_SPECIALIST_ID 
&lt;BR /&gt; ,NVL((SELECT TA_SPECIALIST_ID 
&lt;BR /&gt; FROM OHS_DATA_MART.DIM_TA_SPECIALIST 
&lt;BR /&gt; WHERE TA_SPECIALIST_FULL_NAME = S.TA_SPECIALIST), 0) AS TA_SPECIALIST_ID 
&lt;BR /&gt; ,NVL((SELECT TA_MANAGER_ID 
&lt;BR /&gt; FROM OHS_DATA_MART.DIM_TA_MANAGER 
&lt;BR /&gt; WHERE TA_MANAGER_FULL_NAME = S.TA_MANAGER), 0) AS TA_MANAGER_ID 
&lt;BR /&gt; ,S.PROGRAM_COUNT 
&lt;BR /&gt; FROM OHS_ETL.FACT_PROGRAM_SUMMARY S) S 
&lt;BR /&gt; ON ( T.GRANT_ID = S.GRANT_ID 
&lt;BR /&gt; AND T.PROGRAM_ID = S.PROGRAM_ID) 
&lt;BR /&gt; WHEN MATCHED THEN 
&lt;BR /&gt; UPDATE SET T.GRANTEE_ID = S.GRANTEE_ID 
&lt;BR /&gt; ,T.REGIONAL_MANAGER_ID = S.REGIONAL_MANAGER_ID 
&lt;BR /&gt; ,T.GRANT_SPECIALIST_ID = S.GRANT_SPECIALIST_ID 
&lt;BR /&gt; ,T.PROGRAM_SPECIALIST_ID = S.PROGRAM_SPECIALIST_ID 
&lt;BR /&gt; ,T.TA_SPECIALIST_ID = S.TA_SPECIALIST_ID 
&lt;BR /&gt; ,T.TA_MANAGER_ID = S.TA_MANAGER_ID 
&lt;BR /&gt; ,T.PROGRAM_COUNT = S.PROGRAM_COUNT 
&lt;BR /&gt; WHEN NOT MATCHED THEN 
&lt;BR /&gt; INSERT 
&lt;BR /&gt; (GRANT_ID 
&lt;BR /&gt; ,GRANTEE_ID 
&lt;BR /&gt; ,PROGRAM_ID 
&lt;BR /&gt; ,REGIONAL_MANAGER_ID 
&lt;BR /&gt; ,GRANT_SPECIALIST_ID 
&lt;BR /&gt; ,PROGRAM_SPECIALIST_ID 
&lt;BR /&gt; ,TA_SPECIALIST_ID 
&lt;BR /&gt; ,TA_MANAGER_ID 
&lt;BR /&gt; ,PROGRAM_COUNT ) 
&lt;BR /&gt; VALUES 
&lt;BR /&gt; (S.GRANT_ID 
&lt;BR /&gt; ,S.GRANTEE_ID 
&lt;BR /&gt; ,S.PROGRAM_ID 
&lt;BR /&gt; ,S.REGIONAL_MANAGER_ID 
&lt;BR /&gt; ,S.GRANT_SPECIALIST_ID 
&lt;BR /&gt; ,S.PROGRAM_SPECIALIST_ID 
&lt;BR /&gt; ,S.TA_SPECIALIST_ID 
&lt;BR /&gt; ,S.TA_MANAGER_ID 
&lt;BR /&gt; ,S.PROGRAM_COUNT);</description>
      <pubDate>Sat, 16 Nov 2024 12:38:32 GMT</pubDate>
      <guid>https://community.qlik.com/t5/Talend-Studio/tSQLTemplateMerge-Query-statement-generation-error-with-Oracle/m-p/2369039#M132231</guid>
      <dc:creator>Anonymous</dc:creator>
      <dc:date>2024-11-16T12:38:32Z</dc:date>
    </item>
    <item>
      <title>Re: tSQLTemplateMerge - Query statement generation error with Oracle 11g</title>
      <link>https://community.qlik.com/t5/Talend-Studio/tSQLTemplateMerge-Query-statement-generation-error-with-Oracle/m-p/2369040#M132232</link>
      <description>Hi,
&lt;BR /&gt;In the view 'SQL Model' of your component, there is a list of models.
&lt;BR /&gt;Remove all and add OracleMerge one.
&lt;BR /&gt;Regards,
&lt;BR /&gt;Rudy</description>
      <pubDate>Tue, 14 Jan 2014 10:35:22 GMT</pubDate>
      <guid>https://community.qlik.com/t5/Talend-Studio/tSQLTemplateMerge-Query-statement-generation-error-with-Oracle/m-p/2369040#M132232</guid>
      <dc:creator>Anonymous</dc:creator>
      <dc:date>2014-01-14T10:35:22Z</dc:date>
    </item>
  </channel>
</rss>

