<?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 Working with CLOB/BLOB data types - old Talend issue in Talend Studio</title>
    <link>https://community.qlik.com/t5/Talend-Studio/Working-with-CLOB-BLOB-data-types-old-Talend-issue/m-p/2318464#M88802</link>
    <description>Hello, 
&lt;BR /&gt;In my scenarion I use tOracleSP used to call oracle function. One of the returned parameter is type of CLOB on the database side. When I use type String for saving CLOB value into it, it is ok, but the variable is empty. But based on information bellow I schould use Object instead of String data type. In that case (Object) error occurs: 
&lt;BR /&gt;_________________________________________________________________________________________________________________________ 
&lt;BR /&gt;Starting job Testovaci_Vygeneruj_FDAVKU at 12:08 09/11/2010. 
&lt;BR /&gt; connecting to socket on port 3546 
&lt;BR /&gt; connected 
&lt;BR /&gt; connecting to socket on port 4546 
&lt;BR /&gt; connected 
&lt;BR /&gt;Exception in component tOracleSP_1 
&lt;BR /&gt;java.sql.SQLException: Invalid column type 
&lt;BR /&gt; at oracle.jdbc.driver.DatabaseError.throwSqlException(DatabaseError.java:112) 
&lt;BR /&gt; at oracle.jdbc.driver.DatabaseError.throwSqlException(DatabaseError.java:146) 
&lt;BR /&gt; at oracle.jdbc.driver.DatabaseError.throwSqlException(DatabaseError.java:208) 
&lt;BR /&gt; at oracle.jdbc.driver.OracleStatement.getInternalType(OracleStatement.java:3433) 
&lt;BR /&gt; at oracle.jdbc.driver.OracleCallableStatement.registerOutParameterInternal(OracleCallableStatement.java:125) 
&lt;BR /&gt; at oracle.jdbc.driver.OracleCallableStatement.registerOutParameter(OracleCallableStatement.java:283) 
&lt;BR /&gt; at oracle.jdbc.driver.OracleCallableStatement.registerOutParameter(OracleCallableStatement.java:363) 
&lt;BR /&gt; at fnkv_ip.testovaci_vygeneruj_fdavku_0_1.Testovaci_Vygeneruj_FDAVKU.tFixedFlowInput_1Process(Testovaci_Vygeneruj_FDAVKU.java:3373) 
&lt;BR /&gt; at fnkv_ip.testovaci_vygeneruj_fdavku_0_1.Testovaci_Vygeneruj_FDAVKU.tOracleConnection_1Process(Testovaci_Vygeneruj_FDAVKU.java:3812) 
&lt;BR /&gt; at fnkv_ip.testovaci_vygeneruj_fdavku_0_1.Testovaci_Vygeneruj_FDAVKU.runJobInTOS(Testovaci_Vygeneruj_FDAVKU.java:4458) 
&lt;BR /&gt;0|5D335BE1F6FB955683BF7125C5618E9B|FN KRÁLOVSKÉ VINOHRADY ZEMAN Marek, MUDr.|Fakultní nemocnice|ZPMV ?R Pobo?ka PRAHA a ST?EDNÍ ?ECHY|U Výstavi?t? 287 / 17|Praha 7 - Hole?ovice|170 00|200062|| 
&lt;BR /&gt; at fnkv_ip.testovaci_vygeneruj_fdavku_0_1.Testovaci_Vygeneruj_FDAVKU.main(Testovaci_Vygeneruj_FDAVKU.java:3866) 
&lt;BR /&gt; disconnected 
&lt;BR /&gt; disconnected 
&lt;BR /&gt;Job Testovaci_Vygeneruj_FDAVKU ended at 12:08 09/11/2010. 
&lt;BR /&gt;_________________________________________________________________________________________________________________________ 
&lt;BR /&gt;Also the strange look of stack output appears always. There are output mixed with exception messages. 
&lt;BR /&gt;I found similar topics over the forum, but there is no solution of these issues: 
&lt;BR /&gt; 
&lt;A href="https://community.qlik.com/s/feed/0D53p00007vCmLWCA0" target="_blank" rel="nofollow noopener noreferrer"&gt;https://community.talend.com/t5/Design-and-Development/CLOB-transfer-into-String-VARCHAR2/td-p/83308&lt;/A&gt; 
&lt;BR /&gt; 
&lt;A href="http://www.talendforge.org/forum/viewtopic.php?pid=31742#p31742" target="_blank" rel="nofollow noopener noreferrer"&gt;http://www.talendforge.org/forum/viewtopic.php?pid=31742#p31742&lt;/A&gt; 
&lt;BR /&gt; 
&lt;A href="https://community.qlik.com/s/feed/0D53p00007vCtY0CAK" target="_blank" rel="nofollow noopener noreferrer"&gt;https://community.talend.com/t5/Design-and-Development/Problem-with-un-CLOB-oracle/td-p/64557&lt;/A&gt; 
&lt;BR /&gt; 
&lt;A href="http://talendforge.org/forum/viewtopic.php?pid=5449#p5449" target="_blank" rel="nofollow noopener noreferrer"&gt;http://talendforge.org/forum/viewtopic.php?pid=5449#p5449&lt;/A&gt; 
&lt;BR /&gt;I am able to find in menu Window -&amp;gt; Preferences -&amp;gt; Talend -&amp;gt; Specific Settings -&amp;gt; Metadata of TalendType the record "mapping_Oracle.xml". Based on information from this file I found something strange: 
&lt;BR /&gt;In case of Java language there is defined following statement: 
&lt;BR /&gt;&amp;lt;language name="java"&amp;gt; 
&lt;BR /&gt;&amp;lt;talendToDbTypes&amp;gt; 
&lt;BR /&gt; &amp;lt;talendType type="id_Object"&amp;gt; 
&lt;BR /&gt; &amp;lt;dbType type="BLOB" default="true"/&amp;gt; 
&lt;BR /&gt; &amp;lt;dbType type="CLOB"/&amp;gt; 
&lt;BR /&gt; &amp;lt;dbType type="BFILE"/&amp;gt; 
&lt;BR /&gt; &amp;lt;dbType type="XMLTYPE"/&amp;gt; 
&lt;BR /&gt; &amp;lt;dbType type="ROWID"/&amp;gt; 
&lt;BR /&gt; &amp;lt;dbType type="UROWID"/&amp;gt; 
&lt;BR /&gt; &amp;lt;/talendType&amp;gt; 
&lt;BR /&gt;&amp;lt;/talendToDbTypes&amp;gt; 
&lt;BR /&gt;&amp;lt;dbToTalendTypes&amp;gt; 
&lt;BR /&gt; &amp;lt;dbType type="CLOB"&amp;gt; 
&lt;BR /&gt; &amp;lt;talendType type="id_Object" default="true" /&amp;gt; 
&lt;BR /&gt; &amp;lt;/dbType&amp;gt; 
&lt;BR /&gt;&amp;lt;/dbToTalendTypes&amp;gt; 
&lt;BR /&gt;So the mappings is O.K. CLOB schould be retrieved from database as Object java type. I cannot say if default java Object type is able to keep this type of data. Is it? 
&lt;BR /&gt;What I though about the possible solution: 
&lt;BR /&gt;Call database function/procedure inside of Talend routine and when dealing with CLOBs database type use "java.sql.Clob". Something like following code: 
&lt;BR /&gt;public static String CLOBToString(){ 
&lt;BR /&gt; Class.forName("oracle.jdbc.driver.OracleDriver"); 
&lt;BR /&gt; // 
&lt;BR /&gt; // or 
&lt;BR /&gt; // DriverManager.registerDriver 
&lt;BR /&gt; // (new oracle.jdbc.driver.OracleDriver()); 
&lt;BR /&gt; String url = "jdbc 
&lt;span class="lia-inline-image-display-wrapper" image-alt="0683p000009MA5A.png"&gt;&lt;img src="https://community.qlik.com/t5/image/serverpage/image-id/143082iB236712184B767DA/image-size/large?v=v2&amp;amp;px=999" role="button" title="0683p000009MA5A.png" alt="0683p000009MA5A.png" /&gt;&lt;/span&gt;racle:thin:@//server.local:1521/prod"; 
&lt;BR /&gt; // jdbc 
&lt;span class="lia-inline-image-display-wrapper" image-alt="0683p000009MA5A.png"&gt;&lt;img src="https://community.qlik.com/t5/image/serverpage/image-id/143082iB236712184B767DA/image-size/large?v=v2&amp;amp;px=999" role="button" title="0683p000009MA5A.png" alt="0683p000009MA5A.png" /&gt;&lt;/span&gt;racle:thin:@//host 
&lt;span class="lia-inline-image-display-wrapper" image-alt="0683p000009MAB6.png"&gt;&lt;img src="https://community.qlik.com/t5/image/serverpage/image-id/158321i00588DF41617C922/image-size/large?v=v2&amp;amp;px=999" role="button" title="0683p000009MAB6.png" alt="0683p000009MAB6.png" /&gt;&lt;/span&gt;ort/service 
&lt;BR /&gt; // or 
&lt;BR /&gt; // String url = "jdbc 
&lt;span class="lia-inline-image-display-wrapper" image-alt="0683p000009MA5A.png"&gt;&lt;img src="https://community.qlik.com/t5/image/serverpage/image-id/143082iB236712184B767DA/image-size/large?v=v2&amp;amp;px=999" role="button" title="0683p000009MA5A.png" alt="0683p000009MA5A.png" /&gt;&lt;/span&gt;racle:thin:@server.local:1521 
&lt;span class="lia-inline-image-display-wrapper" image-alt="0683p000009MAB6.png"&gt;&lt;img src="https://community.qlik.com/t5/image/serverpage/image-id/158321i00588DF41617C922/image-size/large?v=v2&amp;amp;px=999" role="button" title="0683p000009MAB6.png" alt="0683p000009MAB6.png" /&gt;&lt;/span&gt;rodsid"; 
&lt;BR /&gt; // jdbc 
&lt;span class="lia-inline-image-display-wrapper" image-alt="0683p000009MA5A.png"&gt;&lt;img src="https://community.qlik.com/t5/image/serverpage/image-id/143082iB236712184B767DA/image-size/large?v=v2&amp;amp;px=999" role="button" title="0683p000009MA5A.png" alt="0683p000009MA5A.png" /&gt;&lt;/span&gt;racle:thin:@host 
&lt;span class="lia-inline-image-display-wrapper" image-alt="0683p000009MAB6.png"&gt;&lt;img src="https://community.qlik.com/t5/image/serverpage/image-id/158321i00588DF41617C922/image-size/large?v=v2&amp;amp;px=999" role="button" title="0683p000009MAB6.png" alt="0683p000009MAB6.png" /&gt;&lt;/span&gt;ort 
&lt;span class="lia-inline-image-display-wrapper" image-alt="0683p000009M9p6.png"&gt;&lt;img src="https://community.qlik.com/t5/image/serverpage/image-id/134116iFBD5D7F21624A744/image-size/large?v=v2&amp;amp;px=999" role="button" title="0683p000009M9p6.png" alt="0683p000009M9p6.png" /&gt;&lt;/span&gt;ID 
&lt;BR /&gt; // 
&lt;BR /&gt; // SID - System ID of the Oracle server database instance. 
&lt;BR /&gt; // By default, Oracle Database 10g Express Edition 
&lt;BR /&gt; // creates one database instance called XE. 
&lt;BR /&gt; // ex : String url = "jdbc 
&lt;span class="lia-inline-image-display-wrapper" image-alt="0683p000009MA5A.png"&gt;&lt;img src="https://community.qlik.com/t5/image/serverpage/image-id/143082iB236712184B767DA/image-size/large?v=v2&amp;amp;px=999" role="button" title="0683p000009MA5A.png" alt="0683p000009MA5A.png" /&gt;&lt;/span&gt;racle:thin:@myhost:1521:xe"; 
&lt;BR /&gt; Connection conn = DriverManager.getConnection(url,"scott","tiger"); 
&lt;BR /&gt; conn.setAutoCommit(false); 
&lt;BR /&gt; Statement stmt = conn.createStatement(); 
&lt;BR /&gt;// Select LOB locator into standard result set. 
&lt;BR /&gt;ResultSet rs = stmt.executeQuery ("SELECT blob_col, clob_col FROM lob_table"); 
&lt;BR /&gt;while (rs.next()) 
&lt;BR /&gt;{ 
&lt;BR /&gt; // Get LOB locators into Java wrapper classes. 
&lt;BR /&gt; java.sql.Blob blob = (java.sql.Blob)rs.getObject(1); 
&lt;BR /&gt; java.sql.Clob clob = (java.sql.Clob)rs.getObject(2); 
&lt;BR /&gt; (...process...) 
&lt;BR /&gt;} 
&lt;BR /&gt; 
&lt;BR /&gt;OR 
&lt;BR /&gt;OracleCallableStatement ocs = (OracleCallableStatement)conn.prepareCall("{? = call ReturnCLOB()}"); 
&lt;BR /&gt;ocs.registerOutParameter(1, OracleTypes.CLOB); 
&lt;BR /&gt;ocs.execute(); 
&lt;BR /&gt;oracle.sql.CLOB clob = ocs.getCLOB(1); 
&lt;BR /&gt;There is also question about using java.sql or oracle.sql type library? 
&lt;BR /&gt;As soon as I wasn't able to see any working solution about working with CLOBs neither BLOBs in Talend, I thank you for any response.</description>
    <pubDate>Sat, 16 Nov 2024 13:12:48 GMT</pubDate>
    <dc:creator>Anonymous</dc:creator>
    <dc:date>2024-11-16T13:12:48Z</dc:date>
    <item>
      <title>Working with CLOB/BLOB data types - old Talend issue</title>
      <link>https://community.qlik.com/t5/Talend-Studio/Working-with-CLOB-BLOB-data-types-old-Talend-issue/m-p/2318464#M88802</link>
      <description>Hello, 
&lt;BR /&gt;In my scenarion I use tOracleSP used to call oracle function. One of the returned parameter is type of CLOB on the database side. When I use type String for saving CLOB value into it, it is ok, but the variable is empty. But based on information bellow I schould use Object instead of String data type. In that case (Object) error occurs: 
&lt;BR /&gt;_________________________________________________________________________________________________________________________ 
&lt;BR /&gt;Starting job Testovaci_Vygeneruj_FDAVKU at 12:08 09/11/2010. 
&lt;BR /&gt; connecting to socket on port 3546 
&lt;BR /&gt; connected 
&lt;BR /&gt; connecting to socket on port 4546 
&lt;BR /&gt; connected 
&lt;BR /&gt;Exception in component tOracleSP_1 
&lt;BR /&gt;java.sql.SQLException: Invalid column type 
&lt;BR /&gt; at oracle.jdbc.driver.DatabaseError.throwSqlException(DatabaseError.java:112) 
&lt;BR /&gt; at oracle.jdbc.driver.DatabaseError.throwSqlException(DatabaseError.java:146) 
&lt;BR /&gt; at oracle.jdbc.driver.DatabaseError.throwSqlException(DatabaseError.java:208) 
&lt;BR /&gt; at oracle.jdbc.driver.OracleStatement.getInternalType(OracleStatement.java:3433) 
&lt;BR /&gt; at oracle.jdbc.driver.OracleCallableStatement.registerOutParameterInternal(OracleCallableStatement.java:125) 
&lt;BR /&gt; at oracle.jdbc.driver.OracleCallableStatement.registerOutParameter(OracleCallableStatement.java:283) 
&lt;BR /&gt; at oracle.jdbc.driver.OracleCallableStatement.registerOutParameter(OracleCallableStatement.java:363) 
&lt;BR /&gt; at fnkv_ip.testovaci_vygeneruj_fdavku_0_1.Testovaci_Vygeneruj_FDAVKU.tFixedFlowInput_1Process(Testovaci_Vygeneruj_FDAVKU.java:3373) 
&lt;BR /&gt; at fnkv_ip.testovaci_vygeneruj_fdavku_0_1.Testovaci_Vygeneruj_FDAVKU.tOracleConnection_1Process(Testovaci_Vygeneruj_FDAVKU.java:3812) 
&lt;BR /&gt; at fnkv_ip.testovaci_vygeneruj_fdavku_0_1.Testovaci_Vygeneruj_FDAVKU.runJobInTOS(Testovaci_Vygeneruj_FDAVKU.java:4458) 
&lt;BR /&gt;0|5D335BE1F6FB955683BF7125C5618E9B|FN KRÁLOVSKÉ VINOHRADY ZEMAN Marek, MUDr.|Fakultní nemocnice|ZPMV ?R Pobo?ka PRAHA a ST?EDNÍ ?ECHY|U Výstavi?t? 287 / 17|Praha 7 - Hole?ovice|170 00|200062|| 
&lt;BR /&gt; at fnkv_ip.testovaci_vygeneruj_fdavku_0_1.Testovaci_Vygeneruj_FDAVKU.main(Testovaci_Vygeneruj_FDAVKU.java:3866) 
&lt;BR /&gt; disconnected 
&lt;BR /&gt; disconnected 
&lt;BR /&gt;Job Testovaci_Vygeneruj_FDAVKU ended at 12:08 09/11/2010. 
&lt;BR /&gt;_________________________________________________________________________________________________________________________ 
&lt;BR /&gt;Also the strange look of stack output appears always. There are output mixed with exception messages. 
&lt;BR /&gt;I found similar topics over the forum, but there is no solution of these issues: 
&lt;BR /&gt; 
&lt;A href="https://community.qlik.com/s/feed/0D53p00007vCmLWCA0" target="_blank" rel="nofollow noopener noreferrer"&gt;https://community.talend.com/t5/Design-and-Development/CLOB-transfer-into-String-VARCHAR2/td-p/83308&lt;/A&gt; 
&lt;BR /&gt; 
&lt;A href="http://www.talendforge.org/forum/viewtopic.php?pid=31742#p31742" target="_blank" rel="nofollow noopener noreferrer"&gt;http://www.talendforge.org/forum/viewtopic.php?pid=31742#p31742&lt;/A&gt; 
&lt;BR /&gt; 
&lt;A href="https://community.qlik.com/s/feed/0D53p00007vCtY0CAK" target="_blank" rel="nofollow noopener noreferrer"&gt;https://community.talend.com/t5/Design-and-Development/Problem-with-un-CLOB-oracle/td-p/64557&lt;/A&gt; 
&lt;BR /&gt; 
&lt;A href="http://talendforge.org/forum/viewtopic.php?pid=5449#p5449" target="_blank" rel="nofollow noopener noreferrer"&gt;http://talendforge.org/forum/viewtopic.php?pid=5449#p5449&lt;/A&gt; 
&lt;BR /&gt;I am able to find in menu Window -&amp;gt; Preferences -&amp;gt; Talend -&amp;gt; Specific Settings -&amp;gt; Metadata of TalendType the record "mapping_Oracle.xml". Based on information from this file I found something strange: 
&lt;BR /&gt;In case of Java language there is defined following statement: 
&lt;BR /&gt;&amp;lt;language name="java"&amp;gt; 
&lt;BR /&gt;&amp;lt;talendToDbTypes&amp;gt; 
&lt;BR /&gt; &amp;lt;talendType type="id_Object"&amp;gt; 
&lt;BR /&gt; &amp;lt;dbType type="BLOB" default="true"/&amp;gt; 
&lt;BR /&gt; &amp;lt;dbType type="CLOB"/&amp;gt; 
&lt;BR /&gt; &amp;lt;dbType type="BFILE"/&amp;gt; 
&lt;BR /&gt; &amp;lt;dbType type="XMLTYPE"/&amp;gt; 
&lt;BR /&gt; &amp;lt;dbType type="ROWID"/&amp;gt; 
&lt;BR /&gt; &amp;lt;dbType type="UROWID"/&amp;gt; 
&lt;BR /&gt; &amp;lt;/talendType&amp;gt; 
&lt;BR /&gt;&amp;lt;/talendToDbTypes&amp;gt; 
&lt;BR /&gt;&amp;lt;dbToTalendTypes&amp;gt; 
&lt;BR /&gt; &amp;lt;dbType type="CLOB"&amp;gt; 
&lt;BR /&gt; &amp;lt;talendType type="id_Object" default="true" /&amp;gt; 
&lt;BR /&gt; &amp;lt;/dbType&amp;gt; 
&lt;BR /&gt;&amp;lt;/dbToTalendTypes&amp;gt; 
&lt;BR /&gt;So the mappings is O.K. CLOB schould be retrieved from database as Object java type. I cannot say if default java Object type is able to keep this type of data. Is it? 
&lt;BR /&gt;What I though about the possible solution: 
&lt;BR /&gt;Call database function/procedure inside of Talend routine and when dealing with CLOBs database type use "java.sql.Clob". Something like following code: 
&lt;BR /&gt;public static String CLOBToString(){ 
&lt;BR /&gt; Class.forName("oracle.jdbc.driver.OracleDriver"); 
&lt;BR /&gt; // 
&lt;BR /&gt; // or 
&lt;BR /&gt; // DriverManager.registerDriver 
&lt;BR /&gt; // (new oracle.jdbc.driver.OracleDriver()); 
&lt;BR /&gt; String url = "jdbc 
&lt;span class="lia-inline-image-display-wrapper" image-alt="0683p000009MA5A.png"&gt;&lt;img src="https://community.qlik.com/t5/image/serverpage/image-id/143082iB236712184B767DA/image-size/large?v=v2&amp;amp;px=999" role="button" title="0683p000009MA5A.png" alt="0683p000009MA5A.png" /&gt;&lt;/span&gt;racle:thin:@//server.local:1521/prod"; 
&lt;BR /&gt; // jdbc 
&lt;span class="lia-inline-image-display-wrapper" image-alt="0683p000009MA5A.png"&gt;&lt;img src="https://community.qlik.com/t5/image/serverpage/image-id/143082iB236712184B767DA/image-size/large?v=v2&amp;amp;px=999" role="button" title="0683p000009MA5A.png" alt="0683p000009MA5A.png" /&gt;&lt;/span&gt;racle:thin:@//host 
&lt;span class="lia-inline-image-display-wrapper" image-alt="0683p000009MAB6.png"&gt;&lt;img src="https://community.qlik.com/t5/image/serverpage/image-id/158321i00588DF41617C922/image-size/large?v=v2&amp;amp;px=999" role="button" title="0683p000009MAB6.png" alt="0683p000009MAB6.png" /&gt;&lt;/span&gt;ort/service 
&lt;BR /&gt; // or 
&lt;BR /&gt; // String url = "jdbc 
&lt;span class="lia-inline-image-display-wrapper" image-alt="0683p000009MA5A.png"&gt;&lt;img src="https://community.qlik.com/t5/image/serverpage/image-id/143082iB236712184B767DA/image-size/large?v=v2&amp;amp;px=999" role="button" title="0683p000009MA5A.png" alt="0683p000009MA5A.png" /&gt;&lt;/span&gt;racle:thin:@server.local:1521 
&lt;span class="lia-inline-image-display-wrapper" image-alt="0683p000009MAB6.png"&gt;&lt;img src="https://community.qlik.com/t5/image/serverpage/image-id/158321i00588DF41617C922/image-size/large?v=v2&amp;amp;px=999" role="button" title="0683p000009MAB6.png" alt="0683p000009MAB6.png" /&gt;&lt;/span&gt;rodsid"; 
&lt;BR /&gt; // jdbc 
&lt;span class="lia-inline-image-display-wrapper" image-alt="0683p000009MA5A.png"&gt;&lt;img src="https://community.qlik.com/t5/image/serverpage/image-id/143082iB236712184B767DA/image-size/large?v=v2&amp;amp;px=999" role="button" title="0683p000009MA5A.png" alt="0683p000009MA5A.png" /&gt;&lt;/span&gt;racle:thin:@host 
&lt;span class="lia-inline-image-display-wrapper" image-alt="0683p000009MAB6.png"&gt;&lt;img src="https://community.qlik.com/t5/image/serverpage/image-id/158321i00588DF41617C922/image-size/large?v=v2&amp;amp;px=999" role="button" title="0683p000009MAB6.png" alt="0683p000009MAB6.png" /&gt;&lt;/span&gt;ort 
&lt;span class="lia-inline-image-display-wrapper" image-alt="0683p000009M9p6.png"&gt;&lt;img src="https://community.qlik.com/t5/image/serverpage/image-id/134116iFBD5D7F21624A744/image-size/large?v=v2&amp;amp;px=999" role="button" title="0683p000009M9p6.png" alt="0683p000009M9p6.png" /&gt;&lt;/span&gt;ID 
&lt;BR /&gt; // 
&lt;BR /&gt; // SID - System ID of the Oracle server database instance. 
&lt;BR /&gt; // By default, Oracle Database 10g Express Edition 
&lt;BR /&gt; // creates one database instance called XE. 
&lt;BR /&gt; // ex : String url = "jdbc 
&lt;span class="lia-inline-image-display-wrapper" image-alt="0683p000009MA5A.png"&gt;&lt;img src="https://community.qlik.com/t5/image/serverpage/image-id/143082iB236712184B767DA/image-size/large?v=v2&amp;amp;px=999" role="button" title="0683p000009MA5A.png" alt="0683p000009MA5A.png" /&gt;&lt;/span&gt;racle:thin:@myhost:1521:xe"; 
&lt;BR /&gt; Connection conn = DriverManager.getConnection(url,"scott","tiger"); 
&lt;BR /&gt; conn.setAutoCommit(false); 
&lt;BR /&gt; Statement stmt = conn.createStatement(); 
&lt;BR /&gt;// Select LOB locator into standard result set. 
&lt;BR /&gt;ResultSet rs = stmt.executeQuery ("SELECT blob_col, clob_col FROM lob_table"); 
&lt;BR /&gt;while (rs.next()) 
&lt;BR /&gt;{ 
&lt;BR /&gt; // Get LOB locators into Java wrapper classes. 
&lt;BR /&gt; java.sql.Blob blob = (java.sql.Blob)rs.getObject(1); 
&lt;BR /&gt; java.sql.Clob clob = (java.sql.Clob)rs.getObject(2); 
&lt;BR /&gt; (...process...) 
&lt;BR /&gt;} 
&lt;BR /&gt; 
&lt;BR /&gt;OR 
&lt;BR /&gt;OracleCallableStatement ocs = (OracleCallableStatement)conn.prepareCall("{? = call ReturnCLOB()}"); 
&lt;BR /&gt;ocs.registerOutParameter(1, OracleTypes.CLOB); 
&lt;BR /&gt;ocs.execute(); 
&lt;BR /&gt;oracle.sql.CLOB clob = ocs.getCLOB(1); 
&lt;BR /&gt;There is also question about using java.sql or oracle.sql type library? 
&lt;BR /&gt;As soon as I wasn't able to see any working solution about working with CLOBs neither BLOBs in Talend, I thank you for any response.</description>
      <pubDate>Sat, 16 Nov 2024 13:12:48 GMT</pubDate>
      <guid>https://community.qlik.com/t5/Talend-Studio/Working-with-CLOB-BLOB-data-types-old-Talend-issue/m-p/2318464#M88802</guid>
      <dc:creator>Anonymous</dc:creator>
      <dc:date>2024-11-16T13:12:48Z</dc:date>
    </item>
    <item>
      <title>Re: Working with CLOB/BLOB data types - old Talend issue</title>
      <link>https://community.qlik.com/t5/Talend-Studio/Working-with-CLOB-BLOB-data-types-old-Talend-issue/m-p/2318465#M88803</link>
      <description>Well, 
&lt;BR /&gt;I spent again some time with seeking the solution for component tOracleSP (even other components) work with CLOB, but without success. Then I wrote small piece of code which is able to write returned CLOB data to file. I will of course edit it to make it able work as Talend routine with some In/Out parameters. 
&lt;BR /&gt;Here is the current working code in Eclipse (you need Oracle JDBC drivers which provides advanced functions agains standard JDBC which can be downloaded here 
&lt;A href="http://www.oracle.com/technetwork/database/features/jdbc/index-091264.html)" rel="nofollow noopener noreferrer"&gt;http://www.oracle.com/technetwork/database/features/jdbc/index-091264.html)&lt;/A&gt;, as soon as I have some working example for Talend, I will post it here too: 
&lt;BR /&gt;import java.io.BufferedWriter; 
&lt;BR /&gt;import java.io.FileWriter; 
&lt;BR /&gt;import java.io.IOException; 
&lt;BR /&gt;import java.security.NoSuchAlgorithmException; 
&lt;BR /&gt;import java.sql.Connection; 
&lt;BR /&gt;import java.sql.DriverManager; 
&lt;BR /&gt;import java.sql.SQLException; 
&lt;BR /&gt;import oracle.jdbc.OracleCallableStatement; 
&lt;BR /&gt;import oracle.jdbc.driver.OracleTypes; 
&lt;BR /&gt;public class testhash { 
&lt;BR /&gt; public static void main(String[] args) throws IOException, 
&lt;BR /&gt; NoSuchAlgorithmException, SQLException { 
&lt;BR /&gt; try { 
&lt;BR /&gt; Class.forName("oracle.jdbc.driver.OracleDriver"); 
&lt;BR /&gt; } catch (ClassNotFoundException e) { 
&lt;BR /&gt; // TODO Auto-generated catch block 
&lt;BR /&gt; e.printStackTrace(); 
&lt;BR /&gt; } 
&lt;BR /&gt; // 
&lt;BR /&gt; // or 
&lt;BR /&gt; // DriverManager.registerDriver 
&lt;BR /&gt; // (new oracle.jdbc.driver.OracleDriver()); 
&lt;BR /&gt; String url = "jdbc 
&lt;span class="lia-inline-image-display-wrapper" image-alt="0683p000009MA5A.png"&gt;&lt;img src="https://community.qlik.com/t5/image/serverpage/image-id/143082iB236712184B767DA/image-size/large?v=v2&amp;amp;px=999" role="button" title="0683p000009MA5A.png" alt="0683p000009MA5A.png" /&gt;&lt;/span&gt;racle:thin:@//172.28.140.110:1521/XE"; 
&lt;BR /&gt; Connection conn; 
&lt;BR /&gt; conn = DriverManager.getConnection(url, "fnkvip", "oracle"); 
&lt;BR /&gt; if (conn != null) { 
&lt;BR /&gt; System.out.println(" connection good"); 
&lt;BR /&gt; } else { 
&lt;BR /&gt; System.out.println(" connection failed"); 
&lt;BR /&gt; } 
&lt;BR /&gt; conn.setAutoCommit(false); 
&lt;BR /&gt; // This is calling my oracle packaged function 
&lt;BR /&gt; OracleCallableStatement ocs = (OracleCallableStatement) conn 
&lt;BR /&gt; //? = call PACKAGE_NAME.FUNCTION_NAME(parameter1,parameter2,...parameterN) 
&lt;BR /&gt; .prepareCall("{? = call ROZHRANI_S_POJ.VRAT_XML_FDAVKU(?,?,?,?,?,?,?,?,?,?)}"); 
&lt;BR /&gt; // Set up parameters, each char '?' in prepareCall has its index number, based on this 
&lt;BR /&gt; // , I will work with these as input or output parameters 
&lt;BR /&gt; 
&lt;BR /&gt; // Set up input parameters 
&lt;BR /&gt; ocs.setString(2, "5D335BE1F6FB955683BF7125C5618E9B"); 
&lt;BR /&gt; ocs.setString(3, "FN KRÁLOVSKÉ VINOHRADY ZEMAN Marek, MUDr."); 
&lt;BR /&gt; ocs.setString(4, "Fakultní nemocnice"); 
&lt;BR /&gt; ocs.setString(5, "ZPMV ?R Pobo?ka PRAHA a ST?EDNÍ ?ECHY"); 
&lt;BR /&gt; ocs.setString(6, "U Výstavi?t? 287 / 17"); 
&lt;BR /&gt; ocs.setString(7, "Praha 7 - Hole?ovice"); 
&lt;BR /&gt; ocs.setString(8, "170 00"); 
&lt;BR /&gt; 
&lt;BR /&gt; // Output parameters 
&lt;BR /&gt; // Each function on Oracle database has its return value, and this is it 
&lt;BR /&gt; ocs.registerOutParameter(1, OracleTypes.NUMBER); 
&lt;BR /&gt; // Return of entity primary key 
&lt;BR /&gt; ocs.registerOutParameter(9, OracleTypes.NUMBER); 
&lt;BR /&gt; // and here finally come 2 CLOBS parameters out 
&lt;BR /&gt; ocs.registerOutParameter(10, OracleTypes.CLOB); 
&lt;BR /&gt; ocs.registerOutParameter(11, OracleTypes.CLOB); 
&lt;BR /&gt; // Execute the statement 
&lt;BR /&gt; ocs.execute(); 
&lt;BR /&gt; 
&lt;BR /&gt; oracle.sql.NUMBER numberPkFaktura = ocs.getNUMBER(9); 
&lt;BR /&gt; oracle.sql.CLOB clobFDAVKA = ocs.getCLOB(10); 
&lt;BR /&gt; // For testing I use only the last returned parameter 
&lt;BR /&gt; oracle.sql.CLOB clobXMLFDAVKA = ocs.getCLOB(11); 
&lt;BR /&gt; 
&lt;BR /&gt; // And now I want to write returned CLOB data for example into a file 
&lt;BR /&gt; BufferedWriter outFile = new BufferedWriter(new FileWriter("E://FDAVKA.out")); 
&lt;BR /&gt; java.io.BufferedReader in = new java.io.BufferedReader(clobXMLFDAVKA.getCharacterStream()); 
&lt;BR /&gt; char[] buffer = new char; 
&lt;BR /&gt; int bytes_read; 
&lt;BR /&gt; StringBuffer stringBuffer = new StringBuffer(); 
&lt;BR /&gt; while ((bytes_read = in.read(buffer)) != -1) { 
&lt;BR /&gt; stringBuffer.append(new String(buffer, 0, bytes_read)); 
&lt;BR /&gt; } 
&lt;BR /&gt; outFile.write("" + stringBuffer); 
&lt;BR /&gt; outFile.close(); 
&lt;BR /&gt; System.out.println(stringBuffer.toString()); 
&lt;BR /&gt; } 
&lt;BR /&gt;} 
&lt;BR /&gt;Best regards, 
&lt;BR /&gt;archenroot</description>
      <pubDate>Tue, 09 Nov 2010 14:03:38 GMT</pubDate>
      <guid>https://community.qlik.com/t5/Talend-Studio/Working-with-CLOB-BLOB-data-types-old-Talend-issue/m-p/2318465#M88803</guid>
      <dc:creator>Anonymous</dc:creator>
      <dc:date>2010-11-09T14:03:38Z</dc:date>
    </item>
    <item>
      <title>Re: Working with CLOB/BLOB data types - old Talend issue</title>
      <link>https://community.qlik.com/t5/Talend-Studio/Working-with-CLOB-BLOB-data-types-old-Talend-issue/m-p/2318466#M88804</link>
      <description>I created bug report at &lt;A href="http://talendforge.org/bugs/view.php?id=16994" rel="nofollow noopener noreferrer"&gt;http://talendforge.org/bugs/view.php?id=16994&lt;/A&gt; related to this issue&lt;BR /&gt;archenroot</description>
      <pubDate>Wed, 10 Nov 2010 10:17:34 GMT</pubDate>
      <guid>https://community.qlik.com/t5/Talend-Studio/Working-with-CLOB-BLOB-data-types-old-Talend-issue/m-p/2318466#M88804</guid>
      <dc:creator>Anonymous</dc:creator>
      <dc:date>2010-11-10T10:17:34Z</dc:date>
    </item>
  </channel>
</rss>

