Solved

Can't connect o Oracle Database

Posted on 2007-03-19
14
6,000 Views
Last Modified: 2013-12-29
Hi, could anybody advise me on the issue that I got when trying to connect to Oracle? The error message that I got: Exception in thread "main" java.lang.UnsatisfiedLinkError: no ocijdbc10 in java.
library.path

I'm using the instantClient. After I set the library path to include the ocijdbc, I got another error: Exception in thread "main" java.lang.UnsatisfiedLinkError: t2cGetCharSet

My codes is as follows:
String driver = "oracle.jdbc.driver.OracleDriver";
Class.forName(driver);
DriverManager.registerDriver(new oracle.jdbc.driver.OracleDriver());
con = DriverManager.getConnection("jdbc:oracle:oci:@DATABASENAME", USERNAME, PASSWORD);

Is there anything wrong with my codes? Please advise, thanks.
0
Comment
Question by:rospcc
[X]
Welcome to Experts Exchange

Add your voice to the tech community where 5M+ people just like you are talking about what matters.

  • Help others & share knowledge
  • Earn cash & points
  • Learn & ask questions
  • 3
  • 3
  • 2
  • +2
14 Comments
 
LVL 92

Expert Comment

by:objects
ID: 18746725
looks like the drivers shared lib is not available, perhaps not installed correctly.
0
 
LVL 92

Accepted Solution

by:
objects earned 250 total points
ID: 18746734
0
 
LVL 48

Expert Comment

by:schwertner
ID: 18747201
What is the version of Oracle?
Is it 10g?
If yes ask the DBA to ensure static registration of the service by the Listener.

his is a working example:

***********************************************************
* Reading from scot/tiger table
**********************************************************

import java.sql.*;

import oracle.jdbc.pool.OracleDataSource;

class first {
public static void main (String args []) throws SQLException {
// Create DataSource and connect to the local database
OracleDataSource ods = new OracleDataSource();
ods.setURL("jdbc:oracle:thin:@//oralin3:1521/phr7b");
ods.setUser("scott");
ods.setPassword("tiger");
Connection conn = ods.getConnection();
// Query the employee names
Statement stmt = conn.createStatement ();
ResultSet rset = stmt.executeQuery ("SELECT ename FROM emp ORDER BY ename");
// Print the name out
while (rset.next ())
System.out.println (rset.getString (1));
//close the result set, statement, and the connection
rset.close();
stmt.close();
conn.close();
}
}
0
Technology Partners: We Want Your Opinion!

We value your feedback.

Take our survey and automatically be enter to win anyone of the following:
Yeti Cooler, Amazon eGift Card, and Movie eGift Card!

 
LVL 35

Expert Comment

by:johnsone
ID: 18747601
schwertner, based on the error, I don't think we are getting as far as the listener.

Here are relavent snippets of code from a working example that I have that does use instant client.

import java.sql.*;

    private Connection dbCon = null;
    private String host;
    private String user;
    private String pass;

      // Load the driver
      try {
          //Class.forName("oracle.jdbc.OracleDriver").newInstance();
          DriverManager.registerDriver(new oracle.jdbc.OracleDriver());
      } catch (Exception e) {
          throw e;
      }

      // Connect to the database
      try {
          dbCon = DriverManager.getConnection("jdbc:oracle:oci:"  + user + "/" + pass + "@" + host);
                  
      } catch(SQLException e) {
          throw e;
      }
0
 
LVL 48

Expert Comment

by:schwertner
ID: 18748101
johnsone,
every 10g installation needs immediatelly changes in the
listener.ora file. Investigation on every connection problem
begins from Listener services.
It is not a panacea, but helps in 30% of the cases.
0
 
LVL 35

Expert Comment

by:johnsone
ID: 18748406
Based on the message being loading a unsatisfied symbol in Java, I don't see how it could be anything to do with the listener.  The code has not even started if it cannot resolve all the symbols.
0
 
LVL 48

Expert Comment

by:schwertner
ID: 18748561
OK
0
 
LVL 30

Expert Comment

by:Mayank S
ID: 18750298
>> Class.forName(driver);
>> DriverManager.registerDriver(new oracle.jdbc.driver.OracleDriver());

The call to registerDriver is redundant and not required.

I would also recommend trying out with the thin driver. BTW maybe that you have multiple versions of Java and so the PATH/ CLASSPATH is messed up, which is why it is unable to load the library.
0
 
LVL 30

Assisted Solution

by:Mayank S
Mayank S earned 250 total points
ID: 18750925
Any library which has to be loaded should be contained in "java.library.path". Try printing:

System.out.println ( System.getProperty ( "java.library.path" ) ) ;

and see if it contains the directory containing that library.
0
 

Author Comment

by:rospcc
ID: 18754045
Mayankeagle, is there any disadvantage in using thin driver?
0
 

Author Comment

by:rospcc
ID: 18754047
The path of the oci driver actually appear when I executed: System.out.println ( System.getProperty ( "java.library.path" ) ) ;
0
 
LVL 92

Expert Comment

by:objects
ID: 18754052
no downside I'm aware of in using the thin driver

> The path of the oci driver actually appear when I executed: System.out.println ( System.getProperty ( "java.library.path" ) ) ;

was that the directory that contains the oci native lib?
0

Featured Post

Instantly Create Instructional Tutorials

Contextual Guidance at the moment of need helps your employees adopt to new software or processes instantly. Boost knowledge retention and employee engagement step-by-step with one easy solution.

Question has a verified solution.

If you are experiencing a similar issue, please ask a related question

Suggested Solutions

Checking the Alert Log in AWS RDS Oracle can be a pain through their user interface.  I made a script to download the Alert Log, look for errors, and email me the trace files.  In this article I'll describe what I did and share my script.
When it comes to protecting Oracle Database servers and systems, there are a ton of myths out there. Here are the most common.
This video shows how to recover a database from a user managed backup
The viewer will learn how to implement Singleton Design Pattern in Java.
Suggested Courses

739 members asked questions and received personalized solutions in the past 7 days.

Join the community of 500,000 technology professionals and ask your questions.

Join & Ask a Question