powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Java [игнор отключен] [закрыт для гостей] / connect to oracle
9 сообщений из 34, страница 2 из 2
connect to oracle
    #33000219
sanek842
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
приподнимем тему :)

прошерстил ответы stdio на оракловом форуме :) , и понял что имелось ввиду под локалью
установка локали , это действ. лекарство и овет на мой вопрос по ошибке
Exception in thread "main" java.sql.SQLException: ORA-12705: Указано неверное или неизвестное значение параметра NLS

Итак, рабочий код!
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
import java.sql.*;
import java.util.*;

public class dbAccess
{
  public static void main(String[] args) throws SQLException
  {
    Locale.setDefault( Locale.ENGLISH );
    DriverManager.registerDriver ( new oracle.jdbc.driver.OracleDriver());
    Connection conn = DriverManager.getConnection("jdbc:oracle:thin:@stat:1521:stat","scott","tiger");
    //Connection conn = DriverManager.getConnection("jdbc:oracle:oci8:@stat","scott","tiger");
    Statement stmt = conn.createStatement();
    //ResultSet rset = stmt.executeQuery("select BANNER from sys.v_$version");
    ResultSet rset = stmt.executeQuery("select dname from dept where deptno=50");
    while ( rset.next() )
     System.out.println(rset.getString( 1 ));
    stmt.close();
  }
}

работает как через thin , так и OCI драйвер с 9-шной базой и все по русски пишет!
Класс!

Еще раз уточню, клиент 10-шный под Linux ( instant client )
http://download.oracle.com/otn/linux/instantclient/oracle-instantclient-basic-10.1.0.3-1.i386.rpm

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
$ rpm -qpl oracle-instantclient-basic-10.1.0.3-1.i386.rpm
/usr/lib/oracle/10.1.0.3/client/lib/classes12.jar
/usr/lib/oracle/10.1.0.3/client/lib/libclntsh.so.10.1
/usr/lib/oracle/10.1.0.3/client/lib/libnnz10.so
/usr/lib/oracle/10.1.0.3/client/lib/libocci.so.10.1
/usr/lib/oracle/10.1.0.3/client/lib/libociei.so
/usr/lib/oracle/10.1.0.3/client/lib/libocijdbc10.so
/usr/lib/oracle/10.1.0.3/client/lib/ojdbc14.jar

в качестве jdbc драйвера исп. ojdbc14.jar
Код: plaintext
1.
2.
$ ls -l /usr/lib/oracle/10.1.0.3/client/lib/ojdbc14.jar
-r--r--r--  1 oracle oinstall 1397543 Дек  3 01:03 /usr/lib/oracle/10.1.0.3/client/lib/ojdbc14.jar

JDK
Код: plaintext
1.
2.
3.
4.
$ java -version
java version "1.4.2_05"
Java(TM) 2 Runtime Environment, Standard Edition (build 1.4.2_05-b04)
Java HotSpot(TM) Client VM (build 1.4.2_05-b04, mixed mode)


с этим разобрались
...
Рейтинг: 0 / 0
connect to oracle
    #33000452
sanek842
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
осталась еще одна проблема
может вместе получится разобраться с JDeveloper, точнее со встроенным отладчиком, а именно Embedded OCJ4 Server

вот тот же JSP код

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
<%@ page contentType="text/html;charset=KOI8-R"%>
<%@ page import="java.sql.*"%>
<%@ page import="java.util.*"%>
<html>
  <head>
    <meta http-equiv="Content-Type" content="text/html; charset=KOI8-R">
    <title>untitled</title>
  </head>
  <body>
<%
    Locale.setDefault( Locale.ENGLISH );
    DriverManager.registerDriver ( new oracle.jdbc.driver.OracleDriver());
    //Connection conn = DriverManager.getConnection("jdbc:oracle:thin:@stat:1521:stat","scott","tiger");    
    Connection conn = DriverManager.getConnection("jdbc:oracle:oci8:@stat","scott","tiger");
    Statement stmt = conn.createStatement();
    ResultSet rset = stmt.executeQuery("select dname from dept where deptno=50");
    while ( rset.next() )
     out.println(rset.getString( 1 )+"<br>");
    stmt.close();
%>
  </body>
</html>

Под Tomcat, все проверил, исправно работает как через thin так и через OCI
Из под Jdev через thin работает, а на ОСI ругается так

Код: 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.
java.lang.UnsatisfiedLinkError: no ocijdbc9 in java.library.path
	at java.lang.ClassLoader.loadLibrary(ClassLoader.java:1517)
	at java.lang.Runtime.loadLibrary0(Runtime.java:788)
	at java.lang.System.loadLibrary(System.java:834)
	at oracle.jdbc.oci8.OCIDBAccess.logon(OCIDBAccess.java:304)
	at oracle.jdbc.driver.OracleConnection.<init>(OracleConnection.java:377)
	at oracle.jdbc.driver.OracleDriver.getConnectionInstance(OracleDriver.java:515)
	at oracle.jdbc.driver.OracleDriver.connect(OracleDriver.java:345)
	at java.sql.DriverManager.getConnection(DriverManager.java:512)
	at java.sql.DriverManager.getConnection(DriverManager.java:171)
	at _jsp._jspService(jsp.jsp:14)
	[/jsp.jsp]
	at oracle.jsp.runtime.HttpJsp.service(HttpJsp.java:139)
	at oracle.jsp.runtimev2.JspPageTable.service(JspPageTable.java:349)
	at oracle.jsp.runtimev2.JspServlet.internalService(JspServlet.java:509)
	at oracle.jsp.runtimev2.JspServlet.service(JspServlet.java:413)
	at javax.servlet.http.HttpServlet.service(HttpServlet.java:853)
	at com.evermind[Oracle Application Server Containers for J2EE 10g (9.0.4.0.0)].server.http.ResourceFilterChain.doFilter(ResourceFilterChain.java:65)
	at oracle.security.jazn.oc4j.JAZNFilter.doFilter(Unknown Source)
	at com.evermind[Oracle Application Server Containers for J2EE 10g (9.0.4.0.0)].server.http.ServletRequestDispatcher.invoke(ServletRequestDispatcher.java:604)
	at com.evermind[Oracle Application Server Containers for J2EE 10g (9.0.4.0.0)].server.http.ServletRequestDispatcher.forwardInternal(ServletRequestDispatcher.java:317)
	at com.evermind[Oracle Application Server Containers for J2EE 10g (9.0.4.0.0)].server.http.HttpRequestHandler.processRequest(HttpRequestHandler.java:790)
	at com.evermind[Oracle Application Server Containers for J2EE 10g (9.0.4.0.0)].server.http.HttpRequestHandler.run(HttpRequestHandler.java:270)
	at com.evermind[Oracle Application Server Containers for J2EE 10g (9.0.4.0.0)].server.http.HttpRequestHandler.run(HttpRequestHandler.java:112)
	at com.evermind[Oracle Application Server Containers for J2EE 10g (9.0.4.0.0)].util.ReleasableResourcePooledExecutor$MyWorker.run(ReleasableResourcePooledExecutor.java:192)
	at java.lang.Thread.run(Thread.java:534)

и причем тут ocijdbc9, когда клиент 10-ый?

Переменные среды

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
[oracle@sanek ~]$ echo $ORACLE_HOME
/usr/lib/oracle/ 10 . 1 . 0 . 3 /client
[oracle@sanek ~]$ echo $NLS_LANG
AMERICAN_CIS.CL8KOI8R
[oracle@sanek ~]$ echo $LD_LIBRARY_PATH
/usr/lib/oracle/ 10 . 1 . 0 . 3 /client/lib
[oracle@sanek ~]$ echo $CLASSPATH
/usr/lib/oracle/ 10 . 1 . 0 . 3 /client/lib:/usr/lib/oracle/ 10 . 1 . 0 . 3 /client/lib/ojdbc14.jar
[oracle@sanek ~]$ echo $TNS_ADMIN
/usr/lib/oracle/ 10 . 1 . 0 . 3 /client/network/admin
[oracle@sanek ~]$ echo $JAVA_HOME
/usr/java/j2sdk1. 4 .2_05
[oracle@sanek ~]$ echo $PATH
/sbin:/usr/local/bin:/usr/sbin:/usr/lib/oracle/ 10 . 1 . 0 . 3 /client/bin:/usr/lib/oracle/ 10 . 1 . 0 . 3 /client/lib:/usr/java/j2sdk1. 4 .2_05/bin:/usr/kerberos/bin:/usr/local/bin:/bin:/usr/bin:/usr/X11R6/bin

Где то что то подкрутить нужно в JDev, а где непойму.
...
Рейтинг: 0 / 0
connect to oracle
    #33000547
Фотография stdio
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
9-й клиент ему требуется.

автори причем тут ocijdbc9, когда клиент 10-ый?Так JDeveloper девятый, наверное?

Можно симлинк ocijdbc9 создать, в принципе. Но не пробовал.
...
Рейтинг: 0 / 0
connect to oracle
    #33000575
sanek842
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
JDev 9.0.5.2
так то когда запускается , пишет что он JDeveloper 10g :)
но похоже что он 9-ый, да?

линк я первым делом сделал
ln -s /usr/lib/oracle/10.1.0.3/client/lib/libocijdbc10.so /usr/lib/oracle/10.1.0.3/client/lib/libocijdbc9.so

ничего хорошего, сыпятся ошибки другого плана

т.е. , если я вас правильно понял, нужно брать JDev (Version 10.1.2, build 1811) ?

P.S.
тут набрел на похожую проблему
на форуме
у наших зарубежных собратьев, видать они тоже на те же грабли наступают :) , только ответ мне там ненравится :(
...
Рейтинг: 0 / 0
connect to oracle
    #33000784
Фотография stdio
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
sanek842JDev 9.0.5.2
так то когда запускается , пишет что он JDeveloper 10g :)
но похоже что он 9-ый, да?

Этож всего лишь надпись. Расслабься... (с) Масяня
sanek842линк я первым делом сделал
ln -s /usr/lib/oracle/10.1.0.3/client/lib/libocijdbc10.so /usr/lib/oracle/10.1.0.3/client/lib/libocijdbc9.so

ничего хорошего, сыпятся ошибки другого плана

т.е. , если я вас правильно понял, нужно брать JDev (Version 10.1.2, build 1811) ?
Зачем такие радикальные меры? Достаточно взять 10-е JDBC-драйвера.
У оракла всё тупо: какая версия драйвера, такой и клиент требуется для oci.
...
Рейтинг: 0 / 0
connect to oracle
    #33001083
sanek842
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
jdbc драйвер то и так от 10-го клиента, он в идет составе rpm -а у instant client-а
/usr/lib/oracle/10.1.0.3/client/lib/ojdbc14.jar
его и прописываю в свойстве проекта в Selected Libraries
...
Рейтинг: 0 / 0
connect to oracle
    #33001199
Фотография stdio
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
sanek842jdbc драйвер то и так от 10-го клиента, он в идет составе rpm -а у instant client-а
/usr/lib/oracle/10.1.0.3/client/lib/ojdbc14.jar
его и прописываю в свойстве проекта в Selected LibrariesНичего не знаю.

Взял своего IC. Развернул в E:\ic
Запустил

Код: plaintext
1.
2.
3.
4.
5.
6.
E:\ic>set PATH=e:\ic
E:\ic>set TNS_ADMIN=e:\ic
E:\ic>set NLS_LANG=AMERICAN_AMERICA.Cl8MSWIN1251
E:\ic>D:\oraproducts\JDeveloper9052\jdev\bin\jdevw.exe

D:\oraproducts\j2sdk1.4.2\bin\javaw.exe -ojvm -classpath E:\xlam\JSP\Project1\classes;E:\ic\classes12.jar;E:\ic\ojdbc14.jar mypackage1.Class1

и всё работает.

Да, кстати, для OCI надо NLS_LANG, а для thin надо Locale
...
Рейтинг: 0 / 0
connect to oracle
    #33001773
sanek842
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
mypackage1.Class1 это я так понимаю не web-приложение, просто тест с коннектом в консольном приложении с методом main
Это оно и у меня работает ( еще раз спасибо за подсказку с локалью )
Еще раз повторюсь, jsp приложение , которое не идет из под jdev9.0.5.2 ( а именно OCI ) , успешно фунциклирует из под Tomcat-а, как thin так и OCI. На этом по идее можно было б остановиться, но мне просто удобно с отладчиком в JDev.

Вообщем проблему я решил, скачал новый JDev версии 10.1.2 и все пошло , во всех комбинациях, с thin и c OCI , как c JDBC драйвером в составе JDev, так и c тем что от клиента, проверил все, простые классы, сервлеты и JSP, все путем. То что мне и нужно было, 10-ый instant client под Linux и JDev :)

Думается, что просто в составе JDev9.0.5.2 сам контейнер OC4J не тот, впрочем неважно!
Всем спасибо!
...
Рейтинг: 0 / 0
connect to oracle
    #33001970
Фотография stdio
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
sanek842Еще раз повторюсь, jsp приложение , которое не идет из под jdev9.0.5.2 ( а именно OCI ) , успешно фунциклирует из под Tomcat-а, как thin так и OCI. На этом по идее можно было б остановиться, но мне просто удобно с отладчиком в JDev.Просто контейнер цепляет драйвера которые идут с JDev.
Попробуй положить 10-ные драйвера в директорию %ORACLE_HOME%\j2ee\home\applib
...
Рейтинг: 0 / 0
9 сообщений из 34, страница 2 из 2
Форумы / Java [игнор отключен] [закрыт для гостей] / connect to oracle
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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