Outsourcer 3.0.1

  • Fix for Oracle dates in which the time was being truncated that started with version 2.7.  With 2.7, I added code to handle two digit years which Oracle uses for centuries between 0 and 100 but I used getDate instead of getTimestamp.
  • Fix for Oracle JDBC driver mismatch which may cause ArrayIndexOutOfBoundsException when using “getString”.
  • Fix for double quotes around object name in function os.fn_create_ext_table.  If you already upgraded to 3.0 and have executed the upgrade_3_0.sql file, please recreate this function with this SQL file.  If you are upgrading from 2.x, be sure to execute the upgrade_3_0.sql file.

Link to Outsourcer 3.0.1 => os_3_0_1


8 thoughts on “Outsourcer 3.0.1

  1. Cristiano

    Hi in refresh mode is no possible to choose only some column of the source table?
    Is it only possible a snapshot of the whole source table?

  2. Jon Post author

    You can pick the columns two different ways.
    1. Create a view in the source database with the columns you want and define job with the view rather than the table. Outsourcer will create the target table distributed randomly so if it is a large table, you’ll probably want to change the distribution after the table is created.
    2. You can create an External Table using Outsourcer. Check out the documentation for this.

  3. Danilo

    Hi Jon. In the documentation of Outsourcer I can read “Oracle sources now use ALL_% objects rather than DBA_% objects.” On Oracle Database 10.2 there 226 ALL_% views. Is there a list of the ALL_% views that are really required to import data from Oracle tables ? We can have issues from our security asking to grant a such large number of system views – probably some of them are not required. Thanks in advance.

    1. Jon Post author

      ALL_% tables are accessible to all users in Oracle. The results will only show objects that the user has access to while the DBA_% tables I used to use, shows all objects.

  4. Cristiano

    hi jon
    i run Outsourcer but i receive an error about connection
    [gpadmin@dca1_mastr1 ~]$ java.lang.ArrayIndexOutOfBoundsException: 7
    at oracle.jdbc.driver.T4CConnection.connect(T4CConnection.java:989)
    at oracle.jdbc.driver.T4CConnection.logon(T4CConnection.java:292)
    at oracle.jdbc.driver.PhysicalConnection.(PhysicalConnection.java:508)
    at oracle.jdbc.driver.T4CConnection.(T4CConnection.java:203)
    at oracle.jdbc.driver.T4CDriverExtension.getConnection(T4CDriverExtension.java:33)
    at oracle.jdbc.driver.OracleDriver.connect(OracleDriver.java:510)
    at java.sql.DriverManager.getConnection(Unknown Source)
    at java.sql.DriverManager.getConnection(Unknown Source)
    at CommonDB.connectOracle(CommonDB.java:699)
    at CommonDB.checkSourceObjects(CommonDB.java:59)
    at ExternalDataThread.run(ExternalDataThread.java:94)
    at java.lang.Thread.run(Unknown Source)
    i think is a firewall problem i’d like to knwo if, for the connection used by Outsourcer, the only port to enable is the one of the listener oracle or there are other port to enable


    1. Jon Post author

      I think we resolved this. You were using an older version of the JDBC driver for Oracle 8.1.7 but that driver isn’t compatible with Java 6. The oldest version of Oracle that has a JDBC compatible with Java 6 is

  5. Fabio

    Hi, I have a question for you… Is there an option when I insert a new job to only create the table without importing all data from the source table? Thanks!

    1. Jon Post author

      No there isn’t. You could create a view in the Source like this:
      create view vw_customer as
      select * from customer where 1 = 2;

      Define the job with vw_customer instead of customer and it will create an empty table for you. Unfortunately, the table in Greenplum will be distributed randomly because a view doesn’t have a primary key so you’ll likely want to alter the table to set a good distribution key. Secondly, I don’t believe you will have any NOT NULL constraints on the columns from the view so there won’t be any in Greenplum.


Leave a Reply

Your email address will not be published. Required fields are marked *

This site uses Akismet to reduce spam. Learn how your comment data is processed.