Добро пожаловать в форум, Guest  >>   Войти | Регистрация | Поиск | Правила | В избранное | Подписаться
Все форумы / Java Новый топик    Ответить
Топик располагается на нескольких страницах: [1] 2   вперед  Ctrl      все
 Вопрос по java.sql.Clob  [new]
Asparov
Member

Откуда:
Сообщений: 40
Стоит задача, чтобы не использовать оракловский драйвер а пользоваться только стандартными ява библиотеками java.sql. Вообщем был код
                   CLOB oracleClob = ((OracleResultSet) rs).getCLOB(1);
                   Writer out = oracleClob.getCharacterOutputStream();

я заменяю на

Clob oracleClob = ((ResultSet) rs).getCob(1);

Вопрос: Чем заменить oracleClob.getCharacterOutputStream(); т.к. getCharacterOutputStream() это расширение ораклововского драйвера?
13 июн 07, 13:45    [4261616]     Ответить | Цитировать Сообщить модератору
 Re: Вопрос по java.sql.Clob  [new]
Denis Popov
Member

Откуда: Санкт-Петербург
Сообщений: 7862
JDK какой версии?
13 июн 07, 13:54    [4261695]     Ответить | Цитировать Сообщить модератору
 Re: Вопрос по java.sql.Clob  [new]
Asparov
Member

Откуда:
Сообщений: 40
JDK 1.4
13 июн 07, 13:55    [4261701]     Ответить | Цитировать Сообщить модератору
 Re: Вопрос по java.sql.Clob  [new]
Denis Popov
Member

Откуда: Санкт-Петербург
Сообщений: 7862
По-моему Clob.setCharacterStream(). Кстати, в драйвере от Oracle 10g он уже реализован, а getCharacterOutputStream() помечен как устаревший. Другое дело, что в более ранних версиях Oracle JDBC этот метод может быть еще не реализован.
13 июн 07, 14:05    [4261765]     Ответить | Цитировать Сообщить модератору
 Re: Вопрос по java.sql.Clob  [new]
Asparov
Member

Откуда:
Сообщений: 40
Спасибо.
Т.е. я должен заменить на

                   Clob oracleClob = ((ResultSet) rs).getClob(1);
                   Writer out = oracleClob.setCharacterStream(1);
13 июн 07, 14:11    [4261800]     Ответить | Цитировать Сообщить модератору
 Re: Вопрос по java.sql.Clob  [new]
Asparov
Member

Откуда:
Сообщений: 40
А еще такой вопросик

А чем заменить

                       BLOB oracleBlob = BLOB.empty_lob();

empty_lob() метод в стандартной яве отсутствует (
13 июн 07, 14:53    [4262065]     Ответить | Цитировать Сообщить модератору
 Re: Вопрос по java.sql.Clob  [new]
Denis Popov
Member

Откуда: Санкт-Петербург
Сообщений: 7862

Asparov wrote:

> А чем заменить BLOB oracleBlob = BLOB.empty_lob();
>
> empty_lob() метод в стандартной яве отсутствует (

А в чем цель всего этого? Можно в Oracle создавать временный Clob через метод
dbms_lob.createTemporary() и возвращать его клиенту. Можно создать свой класс, реализующий интерфейс
Clob и работать с ним.

Posted via ActualForum NNTP Server 1.4

13 июн 07, 15:14    [4262257]     Ответить | Цитировать Сообщить модератору
 Re: Вопрос по java.sql.Clob  [new]
Denis Popov
Member

Откуда: Санкт-Петербург
Сообщений: 7862

Denis Popov wrote:
> Можно создать свой класс, реализующий интерфейс Clob и работать с ним.


Как тут, например: http://kickjava.com/src/org/hibernate/lob/ClobImpl.java.htm

Posted via ActualForum NNTP Server 1.4

13 июн 07, 15:17    [4262274]     Ответить | Цитировать Сообщить модератору
 Re: Вопрос по java.sql.Clob  [new]
Asparov
Member

Откуда:
Сообщений: 40
Смысл в том что программа работает с различными версиями Оракла, а различные версии требуют свои версии JDBC драйвера, т.е. нет одного работающего со всеми версиями, поэтому идея использовать только стандартные джава классы чтобы можно было сразу поддерживать все версии Оракла.
13 июн 07, 15:20    [4262299]     Ответить | Цитировать Сообщить модератору
 Re: Вопрос по java.sql.Clob  [new]
Denis Popov
Member

Откуда: Санкт-Петербург
Сообщений: 7862

Asparov wrote:

> Смысл в том что программа работает с различными версиями Оракла, а
> различные версии требуют свои версии JDBC драйвера, т.е. нет одного
> работающего со всеми версиями.

Вообще-то я беру последнюю версию JDBC от Oracle10g и работаю через них с БД Oracle любой верcии в
пределах от 9.2 до 10.2. Какие версии БД требуют своих версий JDBC? Имхо это независимые понятия.

Posted via ActualForum NNTP Server 1.4

13 июн 07, 15:33    [4262403]     Ответить | Цитировать Сообщить модератору
 Re: Вопрос по java.sql.Clob  [new]
Asparov
Member

Откуда:
Сообщений: 40
В программе требуется одновременная поддержка Oracle 7.3 и 10.2 включая и девятку естесственно.
13 июн 07, 15:54    [4262610]     Ответить | Цитировать Сообщить модератору
 Re: Вопрос по java.sql.Clob  [new]
Denis Popov
Member

Откуда: Санкт-Петербург
Сообщений: 7862

Asparov wrote:

> В программе требуется одновременная поддержка Oracle 7.3 и 10.2 включая
> и девятку естесственно.

Но если ты попытаешься везде использовать Clob.setCharacterStream(), то на ранних версиях драйверов
получишь исключение, мол, еще нереализовано.

Posted via ActualForum NNTP Server 1.4

13 июн 07, 15:59    [4262659]     Ответить | Цитировать Сообщить модератору
 Re: Вопрос по java.sql.Clob  [new]
Asparov
Member

Откуда:
Сообщений: 40
на ранних версиях каких драйверов?
13 июн 07, 16:03    [4262685]     Ответить | Цитировать Сообщить модератору
 Re: Вопрос по java.sql.Clob  [new]
zalexaka
Member

Откуда: откуда все…
Сообщений: 1494
Asparov
на ранних версиях каких драйверов?

JDBC конешно :)

к сведению:
драйвер 10.2.0.3.0 с 8-кой(8.1.6.0.0) работает(с клобами в т.ч.) замечательно.
13 июн 07, 16:13    [4262769]     Ответить | Цитировать Сообщить модератору
 Re: Вопрос по java.sql.Clob  [new]
Denis Popov
Member

Откуда: Санкт-Петербург
Сообщений: 7862

Asparov wrote:

> на ранних версиях каких драйверов?

Например, кусок кода класса oracle.sql.CLOB из JDBC Oracle 9.2:
     public int setString(long l, String s)
         throws SQLException
     {
         DBError.throwUnsupportedFeatureSqlException();
         return -1;
     }

     public int setString(long l, String s, int i, int j)
         throws SQLException
     {
         DBError.throwUnsupportedFeatureSqlException();
         return -1;
     }

     public OutputStream setAsciiStream(long l)
         throws SQLException
     {
         DBError.throwUnsupportedFeatureSqlException();
         return null;
     }

     public Writer setCharacterStream(long l)
         throws SQLException
     {
         DBError.throwUnsupportedFeatureSqlException();
         return null;
     }

     public void truncate(long l)
         throws SQLException
     {
         DBError.throwUnsupportedFeatureSqlException();
     }

Posted via ActualForum NNTP Server 1.4

13 июн 07, 16:28    [4262887]     Ответить | Цитировать Сообщить модератору
 Re: Вопрос по java.sql.Clob  [new]
Asparov
Member

Откуда:
Сообщений: 40
Так в том то и дело что суть изменений которые нужно сделать заключается в том чтобы полностью отказаться от драйверов оракла и использовать только стандартные возможности явы. Т.е. задание выглядит следующим образом

1)to replace Oracle batch with JDBC standard batch
2)to replace oracle.sql.BLOB/CLOB with java.sql.Blob/Clob
13 июн 07, 16:42    [4263027]     Ответить | Цитировать Сообщить модератору
 Re: Вопрос по java.sql.Clob  [new]
zalexaka
Member

Откуда: откуда все…
Сообщений: 1494
Asparov
полностью отказаться от драйверов оракла и использовать только стандартные возможности явы
забавно, если у вас получиться без драйвера то огромная просьба - сообщить нам неразумным
зы по доброму конешно :)
13 июн 07, 16:51    [4263105]     Ответить | Цитировать Сообщить модератору
 Re: Вопрос по java.sql.Clob  [new]
Asparov
Member

Откуда:
Сообщений: 40
а в чем может оказаться проблема? по сути то в java.sql.* есть все необходимое...
я понимаю что идея не особо разумная, но надо либо реализовать ее либо аргументированно объяснить что это невозможно. Может быть вы можете привести мне ссылку на какие нибудь документы в которых объективно описана сложность возможности реализации этого? был бы очень благодарен.
13 июн 07, 16:54    [4263134]     Ответить | Цитировать Сообщить модератору
 Re: Вопрос по java.sql.Clob  [new]
Asparov
Member

Откуда:
Сообщений: 40
или может быть есть какой нибудь другой способ реализовать одновременную поддержку Oracle 7.2 и Oracle 10.2?
13 июн 07, 16:55    [4263149]     Ответить | Цитировать Сообщить модератору
 Re: Вопрос по java.sql.Clob  [new]
Denis Popov
Member

Откуда: Санкт-Петербург
Сообщений: 7862

Asparov wrote:

> 2)to replace oracle.sql.BLOB/CLOB with java.sql.Blob/Clob

Java декларирует интерфейсы, разработчика драйверов их реализуют. То, что ты будешь использовать в
коде java.sql.Clob вместо oracle.sql.CLOB, совсем не значит, что oracle.sql.CLOB не будет
использоваться вообще. Будет, но неявно.



Posted via ActualForum NNTP Server 1.4

13 июн 07, 16:56    [4263159]     Ответить | Цитировать Сообщить модератору
 Re: Вопрос по java.sql.Clob  [new]
Denis Popov
Member

Откуда: Санкт-Петербург
Сообщений: 7862

Asparov wrote:

> или может быть есть какой нибудь другой способ реализовать одновременную
> поддержку Oracle 7.2 и Oracle 10.2?

Для начала я бы проверил следующее: взял бы последние JDBC от Oracle 10.2 и попытался поработать
через них с Oracle 7.2 в рамках требуемой задачи. Т.е. даже если нет полной совместимости, но нужные
вещи работают, то и хорошо.

И посмотри JDBC 10.2 Feature List, по-моему Oracle 7 там упоминается:
http://download-uk.oracle.com/docs/cd/B19306_01/java.102/b14355/overvw.htm#BABJFBIF

Posted via ActualForum NNTP Server 1.4

13 июн 07, 17:08    [4263291]     Ответить | Цитировать Сообщить модератору
 Re: Вопрос по java.sql.Clob  [new]
Asparov
Member

Откуда:
Сообщений: 40
к сожалению не работает, вылетает ошибка, вот что пишут по этому поводу

автор

# llanerobass Says:
October 26th, 2006 at 5:28 pm And what about Oracle 7.2.3 & Oracle 7.1.6 versions? I’ve been trying to use the lastest Oracle JDBC drivers over those versions and it fails… Even worst, I need to use JDBC over two different Oracle DBs: a 9i DB and a 7.2.3 DB (the lastest Oracle JDBC driver do not work over the 7.2.3 DB so I needed to load dynamically two versions of the Oracle JDBC driver… What a thing to do!)
# llanerobass Says:
October 26th, 2006 at 7:39 pm If you try to connect to an Oracle 7.2.3 DB using the newest version of the JDBC drivers, you’ll get an ORA-01010 error: “invalid OCI operation”.
13 июн 07, 17:21    [4263392]     Ответить | Цитировать Сообщить модератору
 Re: Вопрос по java.sql.Clob  [new]
Timm
Member

Откуда: Moscow, Ё-burg
Сообщений: 3729
Asparov
В программе требуется одновременная поддержка Oracle 7.3 и 10.2 включая и девятку естесственно.

Отмазывайтесь от этого щастья. Ограничтесь хотя б 8i - 10g.
Поддерживать в приложении фактически desupported версию Оракла это страшно :)
13 июн 07, 17:37    [4263509]     Ответить | Цитировать Сообщить модератору
 Re: Вопрос по java.sql.Clob  [new]
Denis Popov
Member

Откуда: Санкт-Петербург
Сообщений: 7862
Asparov
к сожалению не работает, вылетает ошибка, вот что пишут по этому поводу

Цитата отсюда?
http://technology.amis.nl/blog/?p=1385#comment-142898

...If you try to connect to an Oracle 7.2.3 DB using the newest version of the JDBC drivers, you’ll get an ORA-01010 error: “invalid OCI operation”.

Заметь, Oracle 7.2.3, а у тебя:
Asparov
В программе требуется одновременная поддержка Oracle 7.3 и 10.2 включая и девятку естесственно.

причем следующий комментарий по этой сылке:
http://technology.amis.nl/blog/?p=1385#comment-144881
You should at least upgrade to 7.3.4...

Так что имхо еще не все потеряно, как минимум стОит попробовать самому, причем в двух вариантах, через OCI- и THIN-версии драйверов.
13 июн 07, 17:37    [4263511]     Ответить | Цитировать Сообщить модератору
 Re: Вопрос по java.sql.Clob  [new]
Asparov
Member

Откуда:
Сообщений: 40
Timm
Asparov
В программе требуется одновременная поддержка Oracle 7.3 и 10.2 включая и девятку естесственно.

Отмазывайтесь от этого щастья. Ограничтесь хотя б 8i - 10g.
Поддерживать в приложении фактически desupported версию Оракла это страшно :)


согласен что это самый простой и оптимальный выход, но к сожалению он не подходит, т.к. как хозяин барин, ну надо им использовать семерку и никуда от этого не деться, и то что она уже не суппортится это не довод, наверное у них все основные базы заточены под семерку уже много лет они пользуются и видимо все этим довольны ( хотя я сам прекрасно понимаю что это страшно, но тем не менее...
13 июн 07, 17:45    [4263559]     Ответить | Цитировать Сообщить модератору
Топик располагается на нескольких страницах: [1] 2   вперед  Ctrl      все
Все форумы / Java Ответить