powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Java [игнор отключен] [закрыт для гостей] / Можно ли и как узнать какие JDBC драйверы имеются на моем компе
35 сообщений из 35, показаны все 2 страниц
Можно ли и как узнать какие JDBC драйверы имеются на моем компе
    #32932205
kefi
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Можно ли и как узнать какие JDBC драйверы имеются на моем компе ?
Помогите , плиз, новичку.

У меня стоят базы Oracle9i,MsSQL2K а также пакеты разработки JBuilderX и JDeveloper. В их каталогах я вижу есть JDK(тлько в каталоге MsSQL его нет), но в Oracle каталоге еще есть и каталог JDBC - что это , ведь jdbc вроде должен быть включен в JDK ?
Я не могу пока разобраться - где смотреть. Вроде JDBC должны быть поставлены вместе с JDK, но в каких каталогах - для меня загадка.

Также - как узнать их возможности - т.е. где находится дока на них - Connection strings etс ?
...
Рейтинг: 0 / 0
Можно ли и как узнать какие JDBC драйверы имеются на моем компе
    #32932218
Фотография Ося
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Про ораклу расскажу, всех остальных не знаю, Оракл сам поставляет _свои_ драйвера JDBC и лежат они именно там, в паре zip файлофф, указывай их в classpath, читай спецификацию в доке и используй. JDK, что идет с ораклом для его собственного Jserv'a и проч.
...
Рейтинг: 0 / 0
Можно ли и как узнать какие JDBC драйверы имеются на моем компе
    #32932219
Фотография Ося
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
читай спецификацию в доке = tahiti.oracle.com
...
Рейтинг: 0 / 0
Можно ли и как узнать какие JDBC драйверы имеются на моем компе
    #32932228
kefi
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Да мне нужен первый толчок - ты упомянул 2 файла - что это за файлы ?
и вообще-то главный вопрос - можно ли и как получить список всех имеющихся драйверов скажеи для того же Oracle ?
...
Рейтинг: 0 / 0
Можно ли и как узнать какие JDBC драйверы имеются на моем компе
    #32932252
kefi
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Да , и как узнать - какие JDBC находятся в данной JDK поставке (скажем с Oracle есть каталог JDK (я про него только знаю , что он 1.3 версии) , а в JBulder есть каталог JDK1.4 - какие в них JDBC драйверы ) ?
...
Рейтинг: 0 / 0
Можно ли и как узнать какие JDBC драйверы имеются на моем компе
    #32932358
Фотография Ося
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
1. Читаем Доки!

2. Вот к примеру у меня нет 9ки, в 8i пишут:

ман по JDBC: A83724-01
прямо написано кто где живет:

автор
lib: The lib directory contains .zip files with these required Java classes:
Verifying a JDBC Client Installation
– classes12.zip contains the classes for use with the JDK 1.2.x—all the
JDBC driver classes except the classes necessary for NLS support.
– nls_charset12.zip contains the classes necessary for NLS support with
the JDK 1.2.x.


3. там же красивый код о версии дрофф

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
  import  java.sql.*;
 import  oracle.jdbc.driver.*;
 class  JDBCVersion
{
 public   static   void  main (String args[])
 throws  SQLException
{
// Load the Oracle JDBC driver
DriverManager.registerDriver
( new  oracle.jdbc.driver.OracleDriver());
Connection conn = DriverManager.getConnection
("jdbc:oracle:thin:@host:port:sid","scott","tiger");
// Create Oracle DatabaseMetaData object
DatabaseMetaData meta = conn.getMetaData();
// gets driver info:
System.out.println("JDBC driver version is " + meta.getDriverVersion());
}
}

4. не стоит использовать не родные дрова если есть родные, по-моему это очевидно
...
Рейтинг: 0 / 0
Можно ли и как узнать какие JDBC драйверы имеются на моем компе
    #32932993
kefi
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Да это все есть.

Но ведь , вопрос чуть по другому стоит - как узнать какие драйвера находятся в этом JDBC каталоге и какие в JDK каталоге ?
Короче - получить их весь список в программе.
Например, у меня из oracle.jdbc.driver.* находится только thin драйвер, а oci8 не работает - почему ?
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
(String url = "jdbc:oracle:oci8:@" + serverName + ":" + portNumber + ":" + sid;  - работает ;
 String url = "jdbc:oracle:oci8:@" + serverName + ":" + portNumber + ":" + sid;  - говорит
java.lang.NoSuchFieldError: envCharSetId
	at oracle.jdbc.oci8.OCIEnv.get_env_handle(Native Method)
	at oracle.jdbc.oci8.OCIEnv.getEnvHandle(OCIEnv.java: 70 )
        ...
 )

И потом, даже забыв по JDBC каталог, поставляемый с Oracle, ведь можно работать с тем, что есть в JDK,
а что там есть - как узнать, например, работает :
Код: plaintext
1.
2.
3.
4.
String driverName = "sun.jdbc.odbc.JdbcOdbcDriver" ; 
Class.forName(driverName);
String url   = "jdbc:odbc:Test2fromOra";
Connection con = DriverManager.getConnection (url, "scott", "tiger");
ну это я взял из примера, а КАКИЕ ЕЩЕ ТАМ есть драйверы и их Connection String и описание возможностей - ГДЕ ВЗЯТЬ ?
Можно ли как-то где-то увидеть их весь список ?

PS. А насчет родных/неродных дров, так это тоже мне кажется не так очевидно, зачем бы фирмы создавали новые драйверы ?
...
Рейтинг: 0 / 0
Можно ли и как узнать какие JDBC драйверы имеются на моем компе
    #32933020
kefi
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Пардон, в первой строчке первого примера предыдущего поста, (там, где работает) должно быть не "jdbc:oracle:oci8:@", а
Код: plaintext
1.
"jdbc:oracle:thin:@"
...
Рейтинг: 0 / 0
Можно ли и как узнать какие JDBC драйверы имеются на моем компе
    #32933047
kefi
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Да , еще :
для "jdbc:oracle:oci:@" та же картина, что и для "jdbc:oracle:oci8:@" .
...
Рейтинг: 0 / 0
Можно ли и как узнать какие JDBC драйверы имеются на моем компе
    #32933052
kefi
ну это я взял из примера, а КАКИЕ ЕЩЕ ТАМ есть драйверы и их Connection String и описание возможностей - ГДЕ ВЗЯТЬ ?
Можно ли как-то где-то увидеть их весь список ?

до того пока класс не загружен Class.forName(...), список драйверов
пуст.

иначе:

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
 Class .forName("sun.jdbc.odbc.JdbcOdbcDriver");
 Class .forName("com.mysql.jdbc.Driver");

Enumeration enum = DriverManager.getDrivers();
 while  (enum.hasMoreElements()) {
  Object o = (Object) enum.nextElement();
  System.out.println(o.getClass().getName());
}

это стандартный способ. можно пойти не стандартным путем. а именно:

перебрать все классы в области видимости classpath. у каждого
класса проверять - является ли класс реализующим интерфейс
java.sql.Driver.

насчет того, каким должен быть url коннекта к БД - два надежных
способа:
- документация на драйвер;
- декомпиляция класса (классов), реализующих коннект к БД
...
Рейтинг: 0 / 0
Можно ли и как узнать какие JDBC драйверы имеются на моем компе
    #32933456
kefi
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
2 родной драйвер >
до того пока класс не загружен Class.forName(...), список драйверов
пуст. >

Да, я это понимаю.

перебрать все классы в области видимости classpath. у каждого
класса проверять - является ли класс реализующим интерфейс
java.sql.Driver.

Так , а нельзя ли такой же примерчик - как это реализовать ?

PS. И потом - как понять , что же находится из JDBC драйверов в JDK , почсемуто никто не говорит об этом ?
...
Рейтинг: 0 / 0
Можно ли и как узнать какие JDBC драйверы имеются на моем компе
    #32933481
kefi2 родной драйвер >
до того пока класс не загружен Class.forName(...), список драйверов
пуст. >

Да, я это понимаю.

перебрать все классы в области видимости classpath. у каждого
класса проверять - является ли класс реализующим интерфейс
java.sql.Driver.

Так , а нельзя ли такой же примерчик - как это реализовать ?

PS. И потом - как понять , что же находится из JDBC драйверов в JDK , почсемуто никто не говорит об этом ?

В стандартной поставке JDK есть один драйвер JDBC - это мост JDBC/ODBC.

Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");

Все. Чего еще хочется понять?

PS вот этот вопрос:

"как понять , что же находится из JDBC драйверов в JDK ...?"

я вообще не понимаю.
...
Рейтинг: 0 / 0
Можно ли и как узнать какие JDBC драйверы имеются на моем компе
    #32933494
kefi перебрать все классы в области видимости classpath. у каждого
класса проверять - является ли класс реализующим интерфейс
java.sql.Driver.

Так, а нельзя ли такой же примерчик - как это реализовать ?

Нельзя. Потому что мне лень. Суть - по classpath находишь каталоги, где
лежат пакеты, классы и пр. Если нашел класс - загружаешь его (либо
напрямую читаешь его содержимое) и определяешь - является ли он
реализующим интерфейс java.sql.Driver. И так по всем классам.

PS не слишком полезная задача, кстати. цель ее мне непонятна.
...
Рейтинг: 0 / 0
Можно ли и как узнать какие JDBC драйверы имеются на моем компе
    #32933551
Фотография Ося
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
епстественно так как в доке ВСЕ описано и где лежит и какой интерфейс и как формировать коннект строку, просто надо ЧИТАТЬ!
...
Рейтинг: 0 / 0
Можно ли и как узнать какие JDBC драйверы имеются на моем компе
    #32933588
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Вопрос очень интересный. Когда-то сам занимался поиском дров.

Публикую исходник для свободного пользования. Если он найдет дрова то выдаст OK! Если вы найдете новые дрова, которые я не добавил в список - пишите в форум. Хотя-бы имя пакета, название класса и строку подключения.

Код: 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.
32.
33.
34.
35.
36.
37.
38.
39.
40.
41.
42.
43.
44.
45.
46.
47.
48.
49.
50.
51.
52.
53.
54.
55.
56.
57.
58.
59.
60.
61.
62.
package ua.dn.mayton.jdbc;

import java.io.*;
import java.sql.*;

public class FindODBCJDBC
{

	public static void Conn(String classId,String connString,String user,String pass) throws ClassNotFoundException
	{

		try
		{			
			System.out.println("\n\n");
			System.out.println("Driver     :  "+classId);
			System.out.println("ConnString :  "+connString);			
			Class.forName(classId);
			Connection Conn = DriverManager.getConnection(connString,user,pass);
			System.out.println("OK!");
			Conn.close();
		}

		catch(SQLException e){
			System.out.println("\n");
			System.out.println("== SQL Exception ===========================================================");			
			System.out.println("Exception getting connection : "+e+"");
			System.out.println("SQLException                 : " + e.getMessage());
			System.out.println("SQLState                     : " + e.getSQLState());
			System.out.println("VendorError                  : " + e.getErrorCode()); 
			System.out.println("============================================================================");			
		}

		catch(ClassNotFoundException e){
			System.out.println("\n");
			System.out.println("= Class not found ==========================================================");			
			System.out.println(e);
			System.out.println("============================================================================");			
		}

		
	}


	public static void main(String[] args) throws SQLException,ClassNotFoundException
	{

			String alias="<alias>";
			String user ="scott";		
			String pass ="tiger";

			String host="<host name>";
			String port="1521";
			String sid ="<sid name>";

			Conn("sun.jdbc.odbc.JdbcOdbcDriver",   "jdbc:oracle:"+alias,                      user,pass);
			Conn("oracle.jdbc.driver.OracleDriver","jdbc:oracle:thin:@"+host+":"+port+":"+sid,user,pass);
			Conn("oracle.jdbc.driver.OracleDriver","jdbc:oracle:oci8:@"+host+":"+port+":"+sid,user,pass);                        
			Conn("postgres95.PGDriver"            ,"jdbc:postgres95:jdatabase",               user,pass);

	}

}
...
Рейтинг: 0 / 0
Можно ли и как узнать какие JDBC драйверы имеются на моем компе
    #32933649
kefi
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
2 стандартный драйвер >

В стандартной поставке JDK есть один драйвер JDBC - это мост JDBC/ODBC.
Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");
Все. Чего еще хочется понять?
PS вот этот вопрос:
"как понять , что же находится из JDBC драйверов в JDK ...?"
я вообще не понимаю.


Как не понимаешь - ты же на него и отвечаешь ?! Чего не понятного я спросил.

PS не слишком полезная задача, кстати. цель ее мне непонятна.
А цель - разобраться новичку во всем этом хозяйстве. Поэтому и вопросы такие. И потом, я в общем - то не требую ни от ког больших усилий, толко подскажите точнее - где найти ответы на мои вопросы.

2 Ocя >
еcтественно так как в доке ВСЕ описано и где лежит и какой интерфейс и как формировать коннект строку, просто надо ЧИТАТЬ!

Ну вот где я должен, будучи новичком в этом деле, найти доку, в которой сказано, что в JDK входит только один единственный драйвер "sun.jdbc.odbc.JdbcOdbcDriver", что там такя - то строка коннекта и т.д. , если бы стандартный драйвер мне об этом не сказал - ГДЕ ЖЕ ЭТА ДОКА ?

И , как следствие нерешеных проблем, далее, - у меня вот , я пишу, не работает oci8 - как понять - почему ?


2 mayton > У Вас же требуется как раз знать строки коннекта, имена к драйверам, чтобы их распечатать ... а мне как раз хотелось бы узнать имена имеющихся драйверов, тюею то , что предлагает стандартный драйвер , просто мне это по неопытности пока затруднительно.
...
Рейтинг: 0 / 0
Можно ли и как узнать какие JDBC драйверы имеются на моем компе
    #32933665
Код: 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.
32.
33.
34.
35.
36.
37.
38.
39.
40.
41.
42.
43.
44.
45.
46.
47.
 package  ua.dn.mayton.jdbc;

 import  java.io.*;
 import  java.sql.*;

 public   class  FindODBCJDBC {
   public   static   void  Conn(String classId, String connString, String user, String pass)  throws  ClassNotFoundException {
     try  {			
      System.out.println("\n\n");
      System.out.println("Driver     :  " + classId);
      System.out.println("ConnString :  " + connString);			
       Class .forName(classId);
      Connection сonn = DriverManager.getConnection(connString, user, pass);
      System.out.println("OK!");
      сonn.close();
    }  catch (SQLException e) {
      System.out.println("\n");
      System.out.println("== SQL Exception ===========================================================");		
      System.out.println("Exception getting connection : " + e);
      System.out.println("SQLException                 : " + e.getMessage());
      System.out.println("SQLState                     : " + e.getSQLState());
      System.out.println("VendorError                  : " + e.getErrorCode()); 
      System.out.println("============================================================================");	
    }  catch (ClassNotFoundException e) {
      System.out.println("\n");
      System.out.println("= Class not found ==========================================================");		
      System.out.println(e);
      System.out.println("============================================================================");	
    }
  }


   public   static   void  main(String[] args)  throws  SQLException, ClassNotFoundException {
    String alias = "<alias>";
    String user = "scott";		
    String pass = "tiger";

    String host = "<host name>";
    String port = "1521";
    String sid = "<sid name>";

    Conn("sun.jdbc.odbc.JdbcOdbcDriver", "jdbc:oracle:" + alias, user, pass);
    Conn("oracle.jdbc.driver.OracleDriver", "jdbc:oracle:thin:@" + host + ":" + port + ":" + sid, user, pass);
    Conn("oracle.jdbc.driver.OracleDriver", "jdbc:oracle:oci8:@" + host + ":" + port + ":" + sid, user, pass);                        
    Conn("postgres95.PGDriver", "jdbc:postgres95:jdatabase", user, pass);
  }
}
...
Рейтинг: 0 / 0
Можно ли и как узнать какие JDBC драйверы имеются на моем компе
    #32933670
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
kefi
2 mayton > У Вас же требуется как раз знать строки коннекта, имена к драйверам, чтобы их распечатать ... а мне как раз хотелось бы узнать имена имеющихся драйверов, тюею то , что предлагает стандартный драйвер , просто мне это по неопытности пока затруднительно.


Я понял. Просто интерфейс я делал на скорую руку. В этом случае строку коннекта вы просто делаете пустой. И если получаете ClassNotfound Exception то драйвера нету в принципе. А если вываливается SQLException то значет драйвер был найден но не состоялся коннект к базе. Но это уже другая тема ИМХО.
...
Рейтинг: 0 / 0
Можно ли и как узнать какие JDBC драйверы имеются на моем компе
    #32933721
kefi
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
2 главный редактор >

Суть - по classpath находишь каталоги, где
лежат пакеты, классы и пр. Если нашел класс - загружаешь его (либо
напрямую читаешь его содержимое) и определяешь - является ли он
реализующим интерфейс java.sql.Driver. И так по всем классам.


А как пройтись по пакетам :
например, как же загрузить все классы из пакета classes12.jar (там куча классов в подкаталогах ) и "определить-является ли он реализующим интерфейс java.sql.Driver. " ?

Можно по паре строк на эти два вопроса - как пройтись и как определить - реализует ли интерфейс ?
Кстати, все-равно - а как потом имя драйвера определить по классу ) ?

PS
1) Кстати, редактор, - хоть бы отличия помечал,что-ли, впрочем, я уже сказал, что этот код не интересен - там надо знать имена драйверов.

2)Как мне понять - почему OCI8 не коннектится (см. пост выше)
...
Рейтинг: 0 / 0
Можно ли и как узнать какие JDBC драйверы имеются на моем компе
    #32933824
kefi1) Кстати, редактор, - хоть бы отличия помечал,что-ли, впрочем, я уже сказал, что этот код не интересен - там надо знать имена драйверов
отличия - в цветовой подсветке синтаксиса. и форматировании кода.
...
Рейтинг: 0 / 0
Можно ли и как узнать какие JDBC драйверы имеются на моем компе
    #32933830
kefi
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Хорошо, а по делу ?
...
Рейтинг: 0 / 0
Можно ли и как узнать какие JDBC драйверы имеются на моем компе
    #32933840
kefiКстати, все-равно - а как потом имя драйвера определить по классу )?

"Как имя драйвера определить по классу". Это что значит?
Имя драйвера == имя класса. Или не?
...
Рейтинг: 0 / 0
Можно ли и как узнать какие JDBC драйверы имеются на моем компе
    #32933847
kefiХорошо, а по делу ?извини. я не видел твоего поста про начинающего в яве.

счас времени нет. если есть терпение и время у тебя - дождись до понедельника.
...
Рейтинг: 0 / 0
Можно ли и как узнать какие JDBC драйверы имеются на моем компе
    #32933879
Фотография Ося
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Хорошо, а по делу ?

прочитаешь обращайся:
...
Рейтинг: 0 / 0
Можно ли и как узнать какие JDBC драйверы имеются на моем компе
    #32933904
ОсяХорошо, а по делу ?

прочитаешь обращайся:
Очень полезная ссылка. Очень внимательно читал. Только ничего не понял. Можно Вас попросить перевести - о чем там говорится? Для Вашего удобства я тут и размещаю оригинал:

ссылка
Please sign in

The requested web page requires that you sign in first. Please enter your Oracle.com username and password below. If you do not have an account you can sign up now.

(If you are seeing this page even after entering valid credentials, please make sure your browser configuration is such that it accepts cookies)
Username:
Password:
...
Рейтинг: 0 / 0
Можно ли и как узнать какие JDBC драйверы имеются на моем компе
    #32933951
kefi
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
2 Ocя >
прочитаешь обращайся:
Так со вчера читаю - тестирую, делаю, как написано - не могу понять, почему не присоединяюсь под oci8 ?

2 Я не знаю английского! >
А что такое ты выдал - все нормально грузится. Хотя, впрочем, наверно надо зологиниться на ... (а уже забыл где (давно регистрировался);) - где -то на Oracle )
...
Рейтинг: 0 / 0
Можно ли и как узнать какие JDBC драйверы имеются на моем компе
    #32933971
kefiТак со вчера читаю - тестирую, делаю, как написано - не могу понять, почему не присоединяюсь под oci8?

Сейчас Денис Попов подтянется - все расскажет.
...
Рейтинг: 0 / 0
Можно ли и как узнать какие JDBC драйверы имеются на моем компе
    #32933987
Ося4. не стоит использовать не родные дрова если есть родные, по-моему это очевидно

Ты, наверное, ни разу не использовал jdbc от Microsoft к MS SQL Server'у
...
Рейтинг: 0 / 0
Можно ли и как узнать какие JDBC драйверы имеются на моем компе
    #32933989
kefi
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
провинившийся работник >
счас времени нет. если есть терпение и время у тебя - дождись до понедельника.
В любом случае буду ждать понедельника. Интересно все же получить способ обегания всех классов и выдачи их имен , если они - суть JDBC драйвер, еще бы и шаблон для Connection String получить, но это , видно, уже слишком сложно.
PS. насчет имен классов == именам драйверов, это я конечно, мог бы и сам догадаться ;)
...
Рейтинг: 0 / 0
Можно ли и как узнать какие JDBC драйверы имеются на моем компе
    #32933999
kefi
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
противник глобализации > Ты, наверное, ни разу не использовал jdbc от Microsoft к MS SQL Server'у
в смысле - совсем плохие ?
Слушай-ка - а тогда какие JDBC надо для MsSQL использовать ?
...
Рейтинг: 0 / 0
Можно ли и как узнать какие JDBC драйверы имеются на моем компе
    #32934029
jnetdirect
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
kefiпротивник глобализации > Ты, наверное, ни разу не использовал jdbc от Microsoft к MS SQL Server'у
в смысле - совсем плохие ?
Слушай-ка - а тогда какие JDBC надо для MsSQL использовать ?

Драйвер JSQLConnect - http://www.jnetdirect.com/products.php?op=jsqlconnect

Естественно, он платный.

PS ломается на раз. там защита примитивная - в коде жестко прописана
дата окончания триальности драйвера. соответственно, сменив ее на какой-нить
2867 год - использовать можно до этого срока :)
...
Рейтинг: 0 / 0
Можно ли и как узнать какие JDBC драйверы имеются на моем компе
    #32934084
Фотография Denis Popov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
kefi
Код: plaintext
1.
2.
3.
4.
5.
6.
 String url = "jdbc:oracle:oci8:@" + serverName + ":" + portNumber + ":" + sid;  - говорит
java.lang.NoSuchFieldError: envCharSetId
	at oracle.jdbc.oci8.OCIEnv.get_env_handle(Native Method)
	at oracle.jdbc.oci8.OCIEnv.getEnvHandle(OCIEnv.java: 70 )
        ...
 )


OCI-драйвер работает через ... OCI:), Oracle Call Interface. Т.е. как минимум у тебя на машине должен стоять оракловый клиент. Далее, в строке коннекта ты должен указать не имя сервера, порт и т.д, а алиас, прописанный в файле $oracle_home/network/admin/tnsnames.ora.

Код: plaintext
1.
String url = "jdbc:oracle:oci8:@" + aliasName;

kefi
Очень полезная ссылка. Очень внимательно читал. Только ничего не понял. Можно Вас попросить перевести - о чем там говорится? Для Вашего удобства я тут и размещаю оригинал:


Зарегестрируйся, это бесплатно. Получишь доступ к полной оракловой документации. На английском.
...
Рейтинг: 0 / 0
Можно ли и как узнать какие JDBC драйверы имеются на моем компе
    #32934243
kefi
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
2 Denis opov >
У меня след в tnsnames.ora :
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
TEST.NY =
  (DESCRIPTION =
    (ADDRESS_LIST =
      (ADDRESS = (PROTOCOL = TCP)(HOST = MyHost)(PORT =  1521 ))
    )
    (CONNECT_DATA =
      (SERVER = DEDICATED)
      (SERVICE_NAME = Test)
    )
  )

Если задаю :

String url = "jdbc:oracle:thin:@(DESCRIPTION =(ADDRESS_LIST =(ADDRESS = (PROTOCOL = TCP)(HOST = MyHost)(PORT = 1521)))(CONNECT_DATA =(SERVER = DEDICATED)(SERVICE_NAME = Test)))" ; - работает

String url = "jdbc:oracle:thin:@TEST.NY" ; - НЕ работает !!!

String url = "jdbc:oracle:oci8:@(DESCRIPTION =(ADDRESS_LIST =(ADDRESS = (PROTOCOL = TCP)(HOST = MyHost)(PORT = 1521)))(CONNECT_DATA =(SERVER = DEDICATED)(SERVICE_NAME = Test)))" ; - НЕ работает !!!


PS.

Да , сейчас обнаружил, по JDBC доке , что у меня база 9.2.0.1 , а версия драйвера, которую я смог получить через тонкий драйвер dma.getDriverVersion()=" 9.0.1.3.0"
И в доке написано, что версия jdbc драйвера 9.0.1 поддерживает только базы до 9.0.1 Но ведь, у меня же он встал вместе с базой 9.2.0.1 - почему такое несоответсвие ?

Закачал для JDBC 9.2.0.5 - как теперь устанавливать - просто переписать каталоги ? По доке рассказывается только как проверить правильность уже установленного :

В доке JDBC Developer’s Guide and Reference ( Release 2 (9.2) March 2002 Part No. A96654-01 )
есть только раздел Verifying a JDBC Client Installation , в котором написано, что
Installing the Oracle9 Java products creates, among other things, an
[ORACLE_HOME]/jdbc directory containing these subdirectories and files:
и далее каталоги, которые уже должны быть у меня - они у меня все и есть(вообще у меня на машине стоит база и Developer Suit - ( я так думаю - клиент тоже туда входит? ) Во всяком случае в UnivInstaller показано, что уже установлены компоненты JDBC/OCI и JDBC/thin Driver for JDK 1.4 9.2.0.1.0 )
Почему же тогда dma.getDriverVersion() говорит " 9.0.1.3.0" ??????????
...
Рейтинг: 0 / 0
Можно ли и как узнать какие JDBC драйверы имеются на моем компе
    #32934352
Фотография Denis Popov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
kefi2 Denis opov >
String url = "jdbc:oracle:thin:@TEST.NY" ; - НЕ работает !!!


Попробуй jdbc:oracle: oci8 :@TEST.NY

kefi
Закачал для JDBC 9.2.0.5 - как теперь устанавливать - просто переписать каталоги ?

Есть такая штука = CLASSPATH. Вся "установка" драйвера заключается в указании в ней пути к файлам ojdbc14.jar и ocrs12.zip с ojdbc14_g.jar (по желанию) при компиляции и запуске программы. Если оно у тебя говорит не ту версию, которую ожидал, проверь: откуда может браться этот самый драйвер, может быть несколько не из того архива, который ты имеешь в виду. Что-то вроде того:

Код: plaintext
1.
2.
3.
4.
DatabaseMetaData metadata = con.getMetaData();
System.out.println(metadata.getDriverName() + " version " + metadata.getDriverVersion());
URL url = Thread.currentThread().getContextClassLoader().getResource("oracle/jdbc/OracleDriver.class");
System.out.println("url: " + url.getPath());
...
Рейтинг: 0 / 0
Можно ли и как узнать какие JDBC драйверы имеются на моем компе
    #32934663
yuniki
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Малость разобрался :
как-то так уменя получилось, что база более новой версии(9.2.0.1), чем Developer Suite (9.0.1.0.0) из которого я использовал jDeveloper c его jdbc драйверами (они следовательно тоже оказались 9.0.1.0.0) , поэтому OCI8 и не работало,
Хотя вопрос - почему же тогда эти 9.0.1 дрова для THIN работают, а для OCI8 нет ?
вобщем, сейчас все перенаправил по путям на дрова базы - все вроде пашет!

Хотя, есть закавыка с JDeveloper (9.02) - не могу установить там Cоединение (есть там такая фича) в Systen Navigator через тот же OCI8 , говорит
или
oracle.jdbc.oci8.OCIEnv.envCharSetId
или
ocijdbc9.dll нет в library.path
--------------------------------------------------
Ну с этим ладно вроде.
-------------------------------

А как быть с JDK - откуда я как новичок, могу узнать, что там за JDBC дрова строят ?
...
Рейтинг: 0 / 0
35 сообщений из 35, показаны все 2 страниц
Форумы / Java [игнор отключен] [закрыт для гостей] / Можно ли и как узнать какие JDBC драйверы имеются на моем компе
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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