TOMCAT 5 JNDI CLOB.CreateTemporary
От: Аноним  
Дата: 16.05.07 14:02
Оценка:
Для создания

CLOB.CreateTemporary(...)

Необходим OracleConnection.

Как его получить зная JNDI?
Re: TOMCAT 5 JNDI CLOB.CreateTemporary
От: Blazkowicz Россия  
Дата: 16.05.07 14:33
Оценка:
Здравствуйте, Аноним, Вы писали:

А>CLOB.CreateTemporary(...)

А>Необходим OracleConnection.
А>Как его получить зная JNDI?

И давно поиск в JNDI стал чем-то не извесным?
Context ctx = new InitialContext();
DataSource ds = (DataSource)ctx.lookup("java:comp/env/jdbc/TestDB");
Re: TOMCAT 5 JNDI CLOB.CreateTemporary
От: MAPCUAHUH  
Дата: 16.05.07 14:34
Оценка:
Здравствуйте, Аноним, Вы писали:

А>Для создания


А>CLOB.CreateTemporary(...)


А>Необходим OracleConnection.


А>Как его получить зная JNDI?



  InitialContext ctx=new InitialContext();

  DataSource ds=(DataSource) ctx.lookup("OracleDataSourceJNDIName");
  Connection con=ds.getConnection()
Re[2]: TOMCAT 5 JNDI CLOB.CreateTemporary
От: Аноним  
Дата: 17.05.07 08:28
Оценка:
Здравствуйте, MAPCUAHUH, Вы писали:

InitialContext ctx=new InitialContext();

DataSource ds=(DataSource) ctx.lookup("OracleDataSourceJNDIName");
Connection con=ds.getConnection()

и получаем
org.apache.commons.dbcp.PoolableConnection

CLOB.CreateTemporary(con,....) — exception

А CLOB.CreateTemporary(....) требует OracleConnection

Как получить его
Re[3]: TOMCAT 5 JNDI CLOB.CreateTemporary
От: Аноним  
Дата: 17.05.07 08:44
Оценка:
Здравствуйте, Аноним, Вы писали:

А>Здравствуйте, MAPCUAHUH, Вы писали:


А>и получаем

А>org.apache.commons.dbcp.PoolableConnection
А>А CLOB.CreateTemporary(....) требует OracleConnection
А>Как получить его

org.apache.commons.dbcp.PoolableConnection::getDelegate()
Re[3]: TOMCAT 5 JNDI CLOB.CreateTemporary
От: dshe  
Дата: 17.05.07 08:52
Оценка:
Здравствуйте, Аноним, Вы писали:

А>Здравствуйте, MAPCUAHUH, Вы писали:


А>InitialContext ctx=new InitialContext();


А>DataSource ds=(DataSource) ctx.lookup("OracleDataSourceJNDIName");

А>Connection con=ds.getConnection()

А>и получаем

А>org.apache.commons.dbcp.PoolableConnection

У org.apache.commons.dbcp.PoolableConnection есть метод getDelegate(). Вполне возможно, что это и будет искомым OracleConnection'ом. Однако, мне кажется, что лучше сменить имплементацию connection pool'а, либо на OracleConnectionCacheImpl, либо на ту, которая не просто враппит javax.sql.DataSource, а использует javax.sql.ConnectionPoolDataSource (в случае с Oracle использоваться в качестве ConnectionPoolDataSource скорее всего должен oracle.jdbc.pool.ConnectionPoolDataSource). В этом случае более вероятно, что полученный Connection будет тот родной connection JDBC driver'а со всеми его специфическими фичами.

Кстати, следует, наверное отметить, что получать connection из datasource'а только для того, чтобы создать temporary lob, скорее всего неправильно. Этот же самый connection (которым создавался lob) должен по идее использоваться для того, чтобы встатвить этот lob в таблицу и выполнения других statement'ов.
--
Дмитро
Re[4]: TOMCAT 5 JNDI CLOB.CreateTemporary
От: Аноним  
Дата: 17.05.07 08:54
Оценка:
Здравствуйте, Аноним, Вы писали:

org.apache.commons.dbcp.PoolableConnection::getDelegate()

CastException
Re[4]: TOMCAT 5 JNDI CLOB.CreateTemporary
От: Аноним  
Дата: 17.05.07 09:19
Оценка:
Здравствуйте, dshe, Вы писали:

Кстати, следует, наверное отметить, что получать connection из datasource'а только для того, чтобы создать temporary lob, скорее всего неправильно. Этот же самый connection (которым создавался lob) должен по идее использоваться для того, чтобы встатвить этот lob в таблицу и выполнения других statement'ов.

Мне надо передать LOB(CLOB,BLOB) В ORACLE процедуру
Как?
Re[5]: TOMCAT 5 JNDI CLOB.CreateTemporary
От: aka50 Россия  
Дата: 17.05.07 09:30
Оценка:
Здравствуйте, Аноним, Вы писали:

А>Здравствуйте, dshe, Вы писали:


А>Кстати, следует, наверное отметить, что получать connection из datasource'а только для того, чтобы создать temporary lob, скорее всего неправильно. Этот же самый connection (которым создавался lob) должен по идее использоваться для того, чтобы встатвить этот lob в таблицу и выполнения других statement'ов.


А>Мне надо передать LOB(CLOB,BLOB) В ORACLE процедуру

А>Как?

Ну так возьми connection из пула и создай его вызовом процедуры:
call DBMS_LOB.CREATETEMPORARY(?,TRUE, DBMS_LOB.SESSION);

 callstm.registerOutParameter(1, OracleTypes.CLOB);
 callstm.execute
 CLOB clob =(CLOB)callstm.getClob(1)
Re[6]: TOMCAT 5 JNDI CLOB.CreateTemporary
От: Аноним  
Дата: 17.05.07 09:52
Оценка:
Здравствуйте, aka50, Вы писали:


CLOB clob =(CLOB)callstm.getClob(1)
еут и вываливается
Re[7]: TOMCAT 5 JNDI CLOB.CreateTemporary
От: aka50 Россия  
Дата: 17.05.07 10:04
Оценка:
Здравствуйте, Аноним, Вы писали:

А>Здравствуйте, aka50, Вы писали:



А>CLOB clob =(CLOB)callstm.getClob(1)

А>еут и вываливается

а какая версия драйвера?
Re[8]: TOMCAT 5 JNDI CLOB.CreateTemporary
От: Аноним  
Дата: 17.05.07 10:17
Оценка:
Здравствуйте, aka50, Вы писали:

9208
Re[9]: TOMCAT 5 JNDI CLOB.CreateTemporary
От: aka50 Россия  
Дата: 17.05.07 10:21
Оценка:
Здравствуйте, Аноним, Вы писали:

А>Здравствуйте, aka50, Вы писали:


А>9208


Я так и думал. Там баги сплошные с блобами...

Тогда два варинта:
insert into blobtab(:mytmpid, EMPTY_CLOB())
select from ...


Или попробывать обновить драйвер до 10g (хотя не факт что заработает)
Re[10]: TOMCAT 5 JNDI CLOB.CreateTemporary
От: Аноним  
Дата: 17.05.07 10:46
Оценка:
Здравствуйте, aka50, Вы писали:

дело не в этом.

Clob clob =callstm.getClob(1)
проходит

(CLOB)Clob не срабатывает
Re[11]: TOMCAT 5 JNDI CLOB.CreateTemporary
От: aka50 Россия  
Дата: 17.05.07 11:28
Оценка:
Здравствуйте, Аноним, Вы писали:

А>Здравствуйте, aka50, Вы писали:


А>дело не в этом.


А>Clob clob =callstm.getClob(1)

А>проходит

А>(CLOB)Clob не срабатывает


А к стати зачем он тебе? Мне обычно хватает Clob/Blob для работы с блобами.
А в процедуру ИМХО проще обернуть это еще одной процедурой call MYPROC(EMPTY_BLOB(),...)
Re[12]: TOMCAT 5 JNDI CLOB.CreateTemporary
От: Аноним  
Дата: 17.05.07 11:44
Оценка:
Здравствуйте, aka50, Вы писали:


А к стати зачем он тебе? Мне обычно хватает Clob/Blob для работы с блобами.

получил
Clob clob =callstm.getClob(1)


Как в сlob записать данные?
Re[13]: TOMCAT 5 JNDI CLOB.CreateTemporary
От: aka50 Россия  
Дата: 17.05.07 11:56
Оценка:
Здравствуйте, Аноним, Вы писали:

А>Как в сlob записать данные?


http://java.sun.com/j2se/1.5.0/docs/guide/jdbc/blob.html
http://www.docjar.com/docs/api/java/sql/Clob.html#getCharacterStream()
Re[14]: TOMCAT 5 JNDI CLOB.CreateTemporary
От: Аноним  
Дата: 17.05.07 12:09
Оценка:
Здравствуйте, aka50, Вы писали:

да делал,
clob.setCharacterStream(1)
Exeption Метод не используется
Re[15]: TOMCAT 5 JNDI CLOB.CreateTemporary
От: aka50 Россия  
Дата: 17.05.07 12:34
Оценка:
Здравствуйте, Аноним, Вы писали:

А>Здравствуйте, aka50, Вы писали:


А>да делал,

А>clob.setCharacterStream(1)
А>Exeption Метод не используется

Это для 10g http://www.oracle.com/technology/software/tech/java/sqlj_jdbc/htdocs/jdbc_readme101020.html, в 9i jdbc это не работает...
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.