<?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: [resolved] Oracle dynamic row doesn't work with clob in Talend Studio</title>
    <link>https://community.qlik.com/t5/Talend-Studio/resolved-Oracle-dynamic-row-doesn-t-work-with-clob/m-p/2267404#M46302</link>
    <description>Sorry for being thick but I'm not a java developer. How do I apply the connection info to the loop retrieving the clob?&lt;BR /&gt;OK I think I've sorted it out. Thanks for our help.</description>
    <pubDate>Thu, 19 Nov 2015 09:32:37 GMT</pubDate>
    <dc:creator>Anonymous</dc:creator>
    <dc:date>2015-11-19T09:32:37Z</dc:date>
    <item>
      <title>[resolved] Oracle dynamic row doesn't work with clob</title>
      <link>https://community.qlik.com/t5/Talend-Studio/resolved-Oracle-dynamic-row-doesn-t-work-with-clob/m-p/2267398#M46296</link>
      <description>If I use dynamic_row on an input oracle table containing clobs and output to a file, the output just puts an object reference out for the clob fields such as &lt;A href="mailto:oracle.sql.CLOB@79885c3a" target="_blank" rel="nofollow noopener noreferrer"&gt;oracle.sql.CLOB@79885c3a&lt;/A&gt;.&lt;BR /&gt;Is this a bug or am I doing something wrong. vn 5.2.2 &amp;amp; 5.6.2</description>
      <pubDate>Fri, 13 Nov 2015 15:37:22 GMT</pubDate>
      <guid>https://community.qlik.com/t5/Talend-Studio/resolved-Oracle-dynamic-row-doesn-t-work-with-clob/m-p/2267398#M46296</guid>
      <dc:creator>Anonymous</dc:creator>
      <dc:date>2015-11-13T15:37:22Z</dc:date>
    </item>
    <item>
      <title>Re: [resolved] Oracle dynamic row doesn't work with clob</title>
      <link>https://community.qlik.com/t5/Talend-Studio/resolved-Oracle-dynamic-row-doesn-t-work-with-clob/m-p/2267399#M46297</link>
      <description>It's been a while since I have hit this problem and thought Talend had made it easier to work with. Basically a Clob is not necessarily a String. In Java it has its own class (java.sql.Clob). If you want to work with Clobs you have to manipulate the Class yourself (unless things have changed that I am not aware of - Anyone?).&lt;BR /&gt;Take a look at this (&lt;A href="http://wiki.scn.sap.com/wiki/display/Snippets/Converting+from+clob+to+string" target="_blank" rel="nofollow noopener noreferrer"&gt;http://wiki.scn.sap.com/wiki/display/Snippets/Converting+from+clob+to+string&lt;/A&gt;). You can write a Java routine to do this and then use it in a tMap or something. The Oracle component will return the Clob as an Object so you will need to cast it to a Clob before you can use it as a Clob.</description>
      <pubDate>Fri, 13 Nov 2015 15:55:05 GMT</pubDate>
      <guid>https://community.qlik.com/t5/Talend-Studio/resolved-Oracle-dynamic-row-doesn-t-work-with-clob/m-p/2267399#M46297</guid>
      <dc:creator>Anonymous</dc:creator>
      <dc:date>2015-11-13T15:55:05Z</dc:date>
    </item>
    <item>
      <title>Re: [resolved] Oracle dynamic row doesn't work with clob</title>
      <link>https://community.qlik.com/t5/Talend-Studio/resolved-Oracle-dynamic-row-doesn-t-work-with-clob/m-p/2267400#M46298</link>
      <description>Not sure how this helps me to compare values in a clob with dynamic row if Oracle doesn't retrieve the real value.</description>
      <pubDate>Tue, 17 Nov 2015 08:52:33 GMT</pubDate>
      <guid>https://community.qlik.com/t5/Talend-Studio/resolved-Oracle-dynamic-row-doesn-t-work-with-clob/m-p/2267400#M46298</guid>
      <dc:creator>Anonymous</dc:creator>
      <dc:date>2015-11-17T08:52:33Z</dc:date>
    </item>
    <item>
      <title>Re: [resolved] Oracle dynamic row doesn't work with clob</title>
      <link>https://community.qlik.com/t5/Talend-Studio/resolved-Oracle-dynamic-row-doesn-t-work-with-clob/m-p/2267401#M46299</link>
      <description>A Clob is a complex data type and does not necessarily hold a String. Clobs can hold things like images, for example. So no, this is not a bug. The information I posted is what you need.</description>
      <pubDate>Tue, 17 Nov 2015 09:38:13 GMT</pubDate>
      <guid>https://community.qlik.com/t5/Talend-Studio/resolved-Oracle-dynamic-row-doesn-t-work-with-clob/m-p/2267401#M46299</guid>
      <dc:creator>Anonymous</dc:creator>
      <dc:date>2015-11-17T09:38:13Z</dc:date>
    </item>
    <item>
      <title>Re: [resolved] Oracle dynamic row doesn't work with clob</title>
      <link>https://community.qlik.com/t5/Talend-Studio/resolved-Oracle-dynamic-row-doesn-t-work-with-clob/m-p/2267402#M46300</link>
      <description>It works ok when there is 1 schema connection but fails if there are 2 different schemas. How do I point the java.sql.clob to a particular connection?&lt;BR /&gt;&lt;BR /&gt;Exception in component tJavaFlex_2&lt;BR /&gt;java.sql.SQLException: Closed Connection&lt;BR /&gt;&amp;nbsp;at oracle.jdbc.driver.SQLStateMapping.newSQLException(SQLStateMapping.java:70)&lt;BR /&gt;&amp;nbsp;at oracle.jdbc.driver.DatabaseError.newSQLException(DatabaseError.java:131)&lt;BR /&gt;&amp;nbsp;at oracle.jdbc.driver.DatabaseError.throwSqlException(DatabaseError.java:197)&lt;BR /&gt;&amp;nbsp;at oracle.jdbc.driver.DatabaseError.throwSqlException(DatabaseError.java:261)&lt;BR /&gt;&amp;nbsp;at oracle.jdbc.driver.DatabaseError.throwSqlException(DatabaseError.java:269)&lt;BR /&gt;&amp;nbsp;at oracle.jdbc.driver.DatabaseError.throwSqlException(DatabaseError.java:490)&lt;BR /&gt;&amp;nbsp;at oracle.sql.CLOB.getDBAccess(CLOB.java:1083)&lt;BR /&gt;&amp;nbsp;at oracle.sql.CLOB.length(CLOB.java:145)&lt;BR /&gt;&amp;nbsp;at ledmdev.match_target_to_ledr_0_1.Match_target_to_LEDR.tOracleInput_2Process(Match_target_to_LEDR.java:2679)&lt;BR /&gt;&amp;nbsp;at ledmdev.match_target_to_ledr_0_1.Match_target_to_LEDR.tOracleConnection_1Process(Match_target_to_LEDR.java:1291)&lt;BR /&gt;&amp;nbsp;at ledmdev.match_target_to_ledr_0_1.Match_target_to_LEDR.runJobInTOS(Match_target_to_LEDR.java:3685)&lt;BR /&gt;&amp;nbsp;at ledmdev.match_target_to_ledr_0_1.Match_target_to_LEDR.main(Match_target_to_LEDR.java:3432)&lt;BR /&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;PRE&gt;// start part of your Java code&lt;BR /&gt;java.util.Map&amp;lt;String, Object&amp;gt; viewMap = new java.util.HashMap&amp;lt;String, Object&amp;gt;();&lt;BR /&gt;java.util.Map&amp;lt;String, Object&amp;gt; tableMap = new java.util.HashMap&amp;lt;String, Object&amp;gt;();&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;BR /&gt;int numColumns;&lt;BR /&gt;String tableColumnName;&lt;BR /&gt;Object tableColumnValue;&lt;BR /&gt;String viewColumnName;&lt;BR /&gt;Object viewColumnValue=null;&lt;BR /&gt;String colNames;&lt;BR /&gt;java.sql.Clob newClobView;&lt;BR /&gt;java.sql.Clob newClobTable;&lt;BR /&gt;//Main part of java code&lt;BR /&gt;numColumns = view.remainder.getColumnCount();&lt;BR /&gt;for (int i = 0; i &amp;lt; numColumns; i++)&lt;BR /&gt;{&lt;BR /&gt;&amp;nbsp;&amp;nbsp; viewColumnName = view.remainder.getColumnMetadata(i).getDbName();&lt;BR /&gt;&amp;nbsp;&amp;nbsp; viewColumnValue = view.remainder.getColumnValue(i);&lt;BR /&gt;&amp;nbsp;if ( view.remainder.getColumnMetadata(i).getType().equalsIgnoreCase("id_Object")) {&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;/* convert old and new values to CLOB type */&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;newClobView = ((java.sql.Clob) view.remainder.getColumnValue(i));&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;//System.out.println("viewColumnValue " + viewColumnValue);&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;if (newClobView != null) {&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;/* use getSubString method to easily convert to String */&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;viewColumnValue = newClobView.getSubString(1L,(int) newClobView.length());&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;System.out.println("viewColumnValue " + viewColumnValue);&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;}&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; if (viewColumnValue == null) {&lt;BR /&gt;&amp;nbsp;&amp;nbsp; viewColumnValue = "";&lt;BR /&gt;&amp;nbsp;&amp;nbsp; }&lt;BR /&gt;&amp;nbsp;viewMap.put(viewColumnName, viewColumnValue);&lt;BR /&gt;}&lt;BR /&gt;numColumns = table.remainder.getColumnCount();&lt;BR /&gt;for (int i = 0; i &amp;lt; numColumns; i++)&lt;BR /&gt;{&lt;BR /&gt;&amp;nbsp;tableColumnName&amp;nbsp; = table.remainder.getColumnMetadata(i).getDbName();&lt;BR /&gt;&amp;nbsp;tableColumnValue = table.remainder.getColumnValue(i);&lt;BR /&gt;&amp;nbsp;if ( table.remainder.getColumnMetadata(i).getType().equalsIgnoreCase("id_Object")) {&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;/* convert old and new values to CLOB type */&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;newClobTable = ((java.sql.Clob) table.remainder.getColumnValue(i));&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;if (newClobTable != null) {&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;/* use getSubString method to easily convert to String */&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;tableColumnValue = newClobTable.getSubString(1L,(int) newClobTable.length());&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;}&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; if (tableColumnValue == null) {&lt;BR /&gt;&amp;nbsp;&amp;nbsp;tableColumnValue = "";&lt;BR /&gt;&amp;nbsp;}&lt;BR /&gt;&amp;nbsp; tableMap.put(tableColumnName, tableColumnValue);&lt;BR /&gt;}&lt;BR /&gt;Set&amp;lt;String&amp;gt; keys = tableMap.keySet();&lt;BR /&gt;for (String key : keys) {&lt;BR /&gt;&amp;nbsp;tableColumnValue = tableMap.get(key);&lt;BR /&gt;&amp;nbsp;viewColumnValue = viewMap.get(key);&lt;BR /&gt;&amp;nbsp;if(viewColumnValue != null) {&lt;BR /&gt;&amp;nbsp;//System.out.println("key=: " + key + " tablevalue = " + tableColumnValue + " viewvalue = " + viewColumnValue);&lt;BR /&gt;&amp;nbsp;if (! tableColumnValue.equals(viewColumnValue))&lt;BR /&gt;&amp;nbsp;{&lt;BR /&gt;&amp;nbsp;&amp;nbsp;if&amp;nbsp; (! tableColumnValue.toString().replaceAll("^0+","").equals(viewColumnValue) ) {&lt;BR /&gt;&amp;nbsp;&amp;nbsp;System.out.println("Event_id = : " + out1.EVENT_ID + " column =: " + key + " tablevalue = " + tableColumnValue + " viewvalue = " + viewColumnValue);&lt;BR /&gt;&amp;nbsp;&amp;nbsp;}&lt;BR /&gt;&amp;nbsp;&amp;nbsp;}&lt;BR /&gt;&amp;nbsp;}&lt;BR /&gt;}&lt;BR /&gt;&lt;/PRE&gt;</description>
      <pubDate>Thu, 19 Nov 2015 09:00:31 GMT</pubDate>
      <guid>https://community.qlik.com/t5/Talend-Studio/resolved-Oracle-dynamic-row-doesn-t-work-with-clob/m-p/2267402#M46300</guid>
      <dc:creator>Anonymous</dc:creator>
      <dc:date>2015-11-19T09:00:31Z</dc:date>
    </item>
    <item>
      <title>Re: [resolved] Oracle dynamic row doesn't work with clob</title>
      <link>https://community.qlik.com/t5/Talend-Studio/resolved-Oracle-dynamic-row-doesn-t-work-with-clob/m-p/2267403#M46301</link>
      <description>If you look at the "Code" tab for your Job and search for something like this.....&lt;BR /&gt;&lt;B&gt;globalMap.get("conn_&lt;/B&gt;&lt;BR /&gt;&lt;BR /&gt;....you will find how Talend uses your connection objects. For Oracle, the code will look something like below...&lt;BR /&gt;&lt;PRE&gt;java.sql.Connection conn_tOracleInput_1 = null;&lt;BR /&gt;conn_tOracleInput_1 = (java.sql.Connection) globalMap.get("conn_tOracleConnection_1");&lt;/PRE&gt;&lt;BR /&gt;Simply retrieve the relevant connection from the globalMap in the same way.</description>
      <pubDate>Thu, 19 Nov 2015 09:14:28 GMT</pubDate>
      <guid>https://community.qlik.com/t5/Talend-Studio/resolved-Oracle-dynamic-row-doesn-t-work-with-clob/m-p/2267403#M46301</guid>
      <dc:creator>Anonymous</dc:creator>
      <dc:date>2015-11-19T09:14:28Z</dc:date>
    </item>
    <item>
      <title>Re: [resolved] Oracle dynamic row doesn't work with clob</title>
      <link>https://community.qlik.com/t5/Talend-Studio/resolved-Oracle-dynamic-row-doesn-t-work-with-clob/m-p/2267404#M46302</link>
      <description>Sorry for being thick but I'm not a java developer. How do I apply the connection info to the loop retrieving the clob?&lt;BR /&gt;OK I think I've sorted it out. Thanks for our help.</description>
      <pubDate>Thu, 19 Nov 2015 09:32:37 GMT</pubDate>
      <guid>https://community.qlik.com/t5/Talend-Studio/resolved-Oracle-dynamic-row-doesn-t-work-with-clob/m-p/2267404#M46302</guid>
      <dc:creator>Anonymous</dc:creator>
      <dc:date>2015-11-19T09:32:37Z</dc:date>
    </item>
    <item>
      <title>Re: [resolved] Oracle dynamic row doesn't work with clob</title>
      <link>https://community.qlik.com/t5/Talend-Studio/resolved-Oracle-dynamic-row-doesn-t-work-with-clob/m-p/2267405#M46303</link>
      <description>Hi ,&lt;BR /&gt;Were you able to fix this. i need a solution for the same issue.&lt;BR /&gt;Please post your answer here. I am getting data in the object format and i am facing issue when trying to load that clob data into Greenplum.</description>
      <pubDate>Mon, 12 Sep 2016 15:58:36 GMT</pubDate>
      <guid>https://community.qlik.com/t5/Talend-Studio/resolved-Oracle-dynamic-row-doesn-t-work-with-clob/m-p/2267405#M46303</guid>
      <dc:creator>_AnonymousUser</dc:creator>
      <dc:date>2016-09-12T15:58:36Z</dc:date>
    </item>
  </channel>
</rss>

