Oracle
Connecting to an older 7.3 version
This forum thread offers insights. Apparently the trick includes installing the 8.1.7 JDBC driver. This is the last version that has support for the 7.3 series.
Issues with JDBC driver 10.0.2.4
One user reported problems with this driver and recommended to stay on version 10.0.2.3 or 10.0.2.2
PL/SQL scripts in Execute SQL Script step
PL/SQL scripts are not supported in the task Execute SQL Script step. But they can be called as desribed in the next section.
Calling Functions or Procedures in a SQL script
When you need to call functions or procedures (for instance the Call DB Procedure step would not be suitable when you need to return a result set / REF CURSOR, see PDI-200), then you can use the own Oracle syntax with the dummy table DUAL:
SELECT function(your parameters) as xyz FROM DUAL;
RAC
When dealing with a Real Application Cluster or other complex failover oracle situations, you can do the following:
- * Set to native (JDBC) connection type
- * Leave hostname and port empty
- * Set the database name to something like this...
(DESCRIPTION = (ADDRESS = (PROTOCOL = TCP)(HOST = host1-vip)(PORT = 1521))(ADDRESS = (PROTOCOL = TCP)(HOST = host2-vip)(PORT = 1521))(LOAD_BALANCE = yes)(CONNECT_DATA =(SERVER = DEDICATED)(SERVICE_NAME = db-service)(FAILOVER_MODE =(TYPE = SELECT)(METHOD = BASIC)(RETRIES = 180)(DELAY = 5))))
or (DESCRIPTION=(ADDRESS_LIST=(ADDRESS=(PROTOCOL=TCP)(HOST=PRIMARY_NODE_HOSTNAME)(PORT=1521))(ADDRESS=(PROTOCOL=TCP)(HOST=SECONDARY_NODE_HOSTNAME)(PORT=1521)))(CONNECT_DATA=(SERVICE_NAME=DATABASE_SERVICENAME)))
or (DESCRIPTION=(FAILOVER=ON)(ADDRESS_LIST=(LOAD_BALANCE=ON)(ADDRESS=(PROTOCOL=TCP)(HOST=xxxxx)(PORT=1526))(ADDRESS=(PROTOCOL=TCP)(HOST=xxxx)(PORT=1526)))(CONNECT_DATA=(SERVICE_NAME=somesid)))
Note: This does only work with a repository based system until 3.0.4. Beginning with 3.0.5 and 3.1 file based systems do also support this.