powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Java [игнор отключен] [закрыт для гостей] / Коннект к Ораклу череч JDBC
9 сообщений из 9, страница 1 из 1
Коннект к Ораклу череч JDBC
    #33495618
K1RUHA
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Что-то проблемы с подключением к Ораклу через JDBC, хотя ODBC работает без проблем.

JDK 1.5, Oracle 10.

Добавил в CLASSPATH и PATH: D:\oracle\product\10.1.0\Db_1\jdbc\lib\classes12.zip

Хотя зачем в PATH не очень догоняю%, но в книге Loney/Koch’а написано:

Loney/KochTo set your system variables, click the System icon in the Control Panel. Choose the Environment
tab to list the environment variables and their definitions. The PATH variable should already be
set, so select it and edit its value. Add the new entry to the end of the list, as shown in the following
listing. This value should be separated from the other values in the list by a semicolon.

E:\Oracle\Ora91\jdbc\lib\classes12.zip

Replace “E:\Oracle\Ora91” with your Oracle software home directory. You should also add
the JDK binaries directory to the PATH setting. The next listing shows the PATH setting expanded
to include a JDK 1.3.1 binaries directory (replace “E:\jdk131” with the directory in which you
installed the JDK):

E:\jdk131\bin

Next, create an environment variable named CLASSPATH if it doesn’t already exist (it won’t
for an initial Java setup). This variable must have two entries, separated by a semicolon. The first
entry must be a period, which denotes the current directory. The second entry must be the directory
for the classes12.zip file, using the same form and value as you used for the PATH value:

.;E:\Oracle\Ora91\jdbc\lib\classes12.zip

После этого запускаю тест:

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
 import  java.sql.*;
 import  java.io.*;

 class  JdbcCheckup{

	 public   static   void  main (String args [])  throws  SQLException, IOException, ClassNotFoundException{
		
		DriverManager.registerDriver( new  oracle.jdbc.driver.OracleDriver());

		//Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");
		
		System.out.print ("Connecting to the database...");
		System.out.flush ();
		System.out.println ("Connecting...");
		
		//java.sql.Connection conn = DriverManager.getConnection ("jdbc:odbc:kir_oracle_odbc", user, password);
		
		java.sql.Connection conn = DriverManager.getConnection("jdbc:oracle:oci:@probal", "miller", "kolobok");
		
		System.out.println ("connected.");
		Statement stmt = conn.createStatement ();
		ResultSet rset=stmt.executeQuery("select 'Hello World' from dual");
		 while  (rset.next ()) {
			System.out.println(rset.getString ( 1 ));
		}
		System.out.println ("Your JDBC installation is correct.");
		rset.close();
		stmt.close();
		conn.close();
	}
}

и получаю ошибку "java.lang.UnsafisfiedLinkError D:\oracle\..\bin\ocijdbc10.dll: The specified procedure could not be found" и к тому же вылетает стандартное виндовское окно с ошибкой, что нельзя загрузить oci.dll .

Пробовал DriverManager.getConnection("jdbc:oracle:thin:@proba:1521:orcl", "miller", "kolobok"), вылетает SQLException: Network Adapter could not establish the connection.

У кого-нибудь такое случалось? Может кто знает как это исправляется?
...
Рейтинг: 0 / 0
Коннект к Ораклу череч JDBC
    #33495689
Фотография Denis Popov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
classes12.zip - древний JDBC-драйвер для JDK 1.2. Возьми ojdbc14.jar.

K1RUHAХотя зачем в PATH не очень догоняю%, но в книге Loney/Koch’а написано:
ИМХО не надо его никуда добавлять кроме как в CLASSPATH, переменную среды или как параметр при запуске твоего класса.

K1RUHAПробовал DriverManager.getConnection("jdbc:oracle:thin:@proba:1521:orcl", "miller", "kolobok"), вылетает SQLException: Network Adapter could not establish the connection.
Вместо "proba" напиши IP-адрес или имя сервера Oracle. Он на то и thin, чтобы работать без установленного ораклового клиента, т.е. tnsnames.ora ему безразличен.
...
Рейтинг: 0 / 0
Коннект к Ораклу череч JDBC
    #33495695
Gold Fish
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
А для чего у тебя Class.forName закоменчен????
...
Рейтинг: 0 / 0
Коннект к Ораклу череч JDBC
    #33495807
K1RUHA
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Denis Popovclasses12.zip - древний JDBC-драйвер для JDK 1.2. Возьми ojdbc14.jar.

Подключил ojdbc14.jar, проблема осталась. Похоже, что я неправильно указываю URL: "jdbc:oracle:oci:@proba". Нигде не могу найти пример с URL для 10-ки. Наугад попробовал "jdbc:oracle:oci10:@proba", вылетает просто SQLException. Может подскажите, как правильно записать URL?
...
Рейтинг: 0 / 0
Коннект к Ораклу череч JDBC
    #33495808
K1RUHA
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Gold FishА для чего у тебя Class.forName закоменчен????

Так закоментирован же "sun.jdbc.odbc.JdbcOdbcDriver", что есть ODBC-драйвер, а Оракловский просто регистрирую вот так: DriverManager.registerDriver(new oracle.jdbc.driver.OracleDriver());
...
Рейтинг: 0 / 0
Коннект к Ораклу череч JDBC
    #33495846
K1RUHA
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Нашел:

Donald Bales "Java Programming with Oracle JDBC"

Even worse than the CLASSPATH error is the one indicated by the following message:

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
Exception in thread "main" java.lang.UnsatisfiedLinkError:
C:\Oracle\Ora81\BIN\
ocijdbc8.dll: One of the library files needed to run  this  application
cannot be found
at java.lang.ClassLoader$NativeLibrary.load( Native  Method)
at java.lang.ClassLoader.loadLibrary0(ClassLoader.java: 1319 )
at java.lang.ClassLoader.loadLibrary(ClassLoader.java: 1243 )
at java.lang.Runtime.loadLibrary0(Runtime.java: 470 )
at java.lang.System.loadLibrary(System.java: 778 )
at oracle.jdbc.oci8.OCIDBAccess.logon(OCIDBAccess.java: 208 )
at
oracle.jdbc.driver.OracleConnection.<init>(OracleConnection.java: 198 )
at oracle.jdbc.driver.OracleDriver.getConnectionInstance
(OracleDriver.java: 251 )
at
oracle.jdbc.driver.OracleDriver.connect(OracleDriver.java: 224 )
at java.sql.DriverManager.getConnection(DriverManager.java: 457 )
at java.sql.DriverManager.getConnection(DriverManager.java: 137 )
at TestOCIApp.main(TestOCIApp.java, Compiled Code)

This error indicates that you have a mismatch between your JDBC classes file and your Oracle
client version. The giveaway here is the message stating that a needed library file cannot be
found. For example, you may be using a classes12.zip file from Oracle Version 8.1.6 with a
Version 8.1.5 Oracle client. The classeXXXs.zip file and Oracle client software versions must
match.

Похоже у меня такая же проблема, но как она решается что-то не втыкаюсь :(
...
Рейтинг: 0 / 0
Коннект к Ораклу череч JDBC
    #33496316
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
2 Кирюха

Такое ощущение, будто клиент не укомплектован
соотв. OCI драйвером. Либо устарел.
...
Рейтинг: 0 / 0
Коннект к Ораклу череч JDBC
    #33496389
Liner
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
А клиент-то оракловый какой установлен?

одного только ojdbc14.jar - это только для thin драйвера хватит,
для oci надо всего клиента, ставить чтоб он dll-ки использовал соответствующие
...
Рейтинг: 0 / 0
Коннект к Ораклу череч JDBC
    #33496394
Liner
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Может несколько клиентов оракловых разных версий стоит?
...
Рейтинг: 0 / 0
9 сообщений из 9, страница 1 из 1
Форумы / Java [игнор отключен] [закрыт для гостей] / Коннект к Ораклу череч JDBC
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]