If you use C3PO you can make it do it when it checks the connection out.
As properties:
c3p0.preferredTestQuery=alter session set current_schema=animals c3p0.testConnectionOnCheckout=true
As Java code:
ComboPooledDataSource dataSource = new ComboPooledDataSource(); dataSource.setPreferredTestQuery("alter session set current_schema=animals"); dataSource.setTestConnectionOnCheckout(true);
Downside is this will happen every time the connection is taken out of the pool
If you are using a JDBC connection yourself you could just do:
Class.forName("oracle.jdbc.driver.OracleDriver"); Connection connection = getConnection("jdbc:oracle:thin:@//server:1521/instance", "username", "password"); connection.createStatement().execute("alter session set current_schema=animals"));
I also posted it to StackOverflow
You saved my day! Thanks