Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / Java [игнор отключен] [закрыт для гостей] / Коннект к Ораклу череч JDBC / 9 сообщений из 9, страница 1 из 1
21.01.2006, 16:00
    #33495618
K1RUHA
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Коннект к Ораклу череч JDBC
Что-то проблемы с подключением к Ораклу через 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
21.01.2006, 17:30
    #33495689
Denis Popov
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Коннект к Ораклу череч JDBC
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
21.01.2006, 17:38
    #33495695
Gold Fish
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Коннект к Ораклу череч JDBC
А для чего у тебя Class.forName закоменчен????
...
Рейтинг: 0 / 0
21.01.2006, 21:17
    #33495807
K1RUHA
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Коннект к Ораклу череч JDBC
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
21.01.2006, 21:19
    #33495808
K1RUHA
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Коннект к Ораклу череч JDBC
Gold FishА для чего у тебя Class.forName закоменчен????

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

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
23.01.2006, 01:17
    #33496316
mayton
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Коннект к Ораклу череч JDBC
2 Кирюха

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

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


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