Can't connect o Oracle Database

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.

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";
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.
Who is Participating?
looks like the drivers shared lib is not available, perhaps not installed correctly.
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();
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 ( ())
System.out.println (rset.getString (1));
//close the result set, statement, and the connection
The 14th Annual Expert Award Winners

The results are in! Meet the top members of our 2017 Expert Awards. Congratulations to all who qualified!

johnsoneSenior Oracle DBACommented:
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 {
          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;
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.
johnsoneSenior Oracle DBACommented:
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.
Mayank SAssociate Director - Product EngineeringCommented:
>> 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.
Mayank SConnect With a Mentor Associate Director - Product EngineeringCommented:
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.
rospccAuthor Commented:
Mayankeagle, is there any disadvantage in using thin driver?
rospccAuthor Commented:
The path of the oci driver actually appear when I executed: System.out.println ( System.getProperty ( "java.library.path" ) ) ;
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?
Question has a verified solution.

Are you are experiencing a similar issue? Get a personalized answer when you ask a related question.

Have a better answer? Share it in a comment.

All Courses

From novice to tech pro — start learning today.