|
|
|
JDBC: "Превышен размер данных, разрешенный для этого типа"
|
|||
|---|---|---|---|
|
#18+
Привет всем! Посоветуйте по следующей проблеме: Возникает ошибкав 9ке: "Превышен размер данных, разрешенный для этого типа: oracle.jdbc.kprb.KprbDBStatement@9f70b26c" при попытке сделать executeUpdate для PreparedStatement. Этот PreparedStatement содержит привязки типа setString для поля типа LONG. Возникает при размере параметра привязки больше 32К. т.е. пытаюсь засунуть туда String > 32K. Это работает в 10ке! Вроде тестил это и на 9ке и работало. Может это связано с версией JDBC и т.д. Заранее благодарен! ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.05.2007, 10:42:37 |
|
||
|
JDBC: "Превышен размер данных, разрешенный для этого типа"
|
|||
|---|---|---|---|
|
#18+
автор Oracle® Database JDBC Developer's Guide and Reference 14 Java Streams in JDBC In Oracle Database 10g, the size limitation on data that may be used with setBytes and setString have been reduced and, in certain cases, eliminated. Any Java byte array can be passed to setBytes, and any Java String can be passed to setString. The JDBC driver automatically switches to using setBinaryStream or setCharacterStream or to using setBytesForBlob or setStringForClob, depending on the size of the data, whether the statement is SQL or PL/SQL, and the driver used. There are some limitation with earlier versions of Oracle Database and in the server-side internal driver. Попробуйте заливать через поток. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.05.2007, 12:15:58 |
|
||
|
JDBC: "Превышен размер данных, разрешенный для этого типа"
|
|||
|---|---|---|---|
|
#18+
Спасибо но что то тоже самое выдает :-( сделал так примерно для теста: public static void putTest (oracle.sql.CLOB pCLOB) throws SQLException, IOException, Exception { Connection conn = new OracleDriver().defaultConnection(); PreparedStatement stmt = conn.prepareStatement("insert into testlong(id, l) values(1, ?)"); Reader rd = pCLOB.getCharacterStream(); stmt.setCharacterStream(1, rd, 33000); int result = stmt.executeUpdate(); stmt.close(); conn.close(); } может по-другому надо? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.05.2007, 15:40:01 |
|
||
|
JDBC: "Превышен размер данных, разрешенный для этого типа"
|
|||
|---|---|---|---|
|
#18+
Попробуй так Код: 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. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.05.2007, 17:11:45 |
|
||
|
JDBC: "Превышен размер данных, разрешенный для этого типа"
|
|||
|---|---|---|---|
|
#18+
А драйвер какой используешь? Надо ojdbc14.jar подключать и в режиме не thin драйвера, а oci. Должно получиться. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.05.2007, 19:38:18 |
|
||
|
JDBC: "Превышен размер данных, разрешенный для этого типа"
|
|||
|---|---|---|---|
|
#18+
у меня сделано так: Connection conn = new OracleDriver().defaultConnection(); Буду признателен если приведете пример как это сделать... както с этим не сталкивался не разбирался... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 30.05.2007, 05:59:48 |
|
||
|
JDBC: "Превышен размер данных, разрешенный для этого типа"
|
|||
|---|---|---|---|
|
#18+
может кто-нибудь еще сталкивался и может помочь советом? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 30.05.2007, 13:06:06 |
|
||
|
JDBC: "Превышен размер данных, разрешенный для этого типа"
|
|||
|---|---|---|---|
|
#18+
Вам garry_k подробно написал, как делается. Вставляете строку с пустым лобом, получаете его локатор, затем в него пишите. http://download-uk.oracle.com/docs/cd/B19306_01/java.102/b14355/oralob.htm#CHDFHHHG пример коннекта http://download-uk.oracle.com/docs/cd/B19306_01/java.102/b14355/getsta.htm#i1003811 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 30.05.2007, 15:25:07 |
|
||
|
JDBC: "Превышен размер данных, разрешенный для этого типа"
|
|||
|---|---|---|---|
|
#18+
а для поля типа LONG это подойдет? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 31.05.2007, 06:25:58 |
|
||
|
JDBC: "Превышен размер данных, разрешенный для этого типа"
|
|||
|---|---|---|---|
|
#18+
при выполнении этого обрубает коннекцию... либо вообще валит базу... Connection conn = null; DriverManager.registerDriver (new oracle.jdbc.OracleDriver()); String url = "jdbc:oracle:oci:@TEST"; conn = DriverManager.getConnection (url,"user","passw"); может кто-нить знает в чем проблема? а так конечно через OCI в LONG можно и при помощи setString загнать > 32K. но вот зараза ложит базы и всё... помогите советом-просто не занимался этим раньше... а вообще конечно хотелось бы обойтись без OCI и если ктото знает как обойти ограничения на 32К в 9ке используя не OCI, а используя DefaultConnection(как в 10ке - kprb как я понимаю) - буду благодарен... а потоки тут не причем тк на setString JDBC переключает сам на setBinaryStream or setCharacterStream. вот... ну хотябы с OCI подскажите почему валит базу... для 9-к будет тогда OCI ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 31.05.2007, 08:48:16 |
|
||
|
JDBC: "Превышен размер данных, разрешенный для этого типа"
|
|||
|---|---|---|---|
|
#18+
Oracle 9.2.0.6.0 PL/SQL + Java Проблема такая: Пытался разными путями выполнить соединение используя OCI. При выполнении процедуры либо разрывает текущую сессию из которой запускал процедуру либо ложит базу. делал такие варианты: 1. Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. Код: plaintext 1. 2. 3. Код: plaintext 1. 2. Но при повторе выполнения либо разрывается сессия с которой запускаешь или просто падает база. Пытались увеличить параметры типа java_pool_size и т.д. а также табличные пространства не помогло. Подскажите пожалуйста где и что нужно смотреть или покрутить. Заранее благодарен! ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 01.06.2007, 10:15:41 |
|
||
|
|

start [/forum/topic.php?fid=59&msg=34558308&tid=2145551]: |
0ms |
get settings: |
15ms |
get forum list: |
24ms |
check forum access: |
6ms |
check topic access: |
6ms |
track hit: |
104ms |
get topic data: |
18ms |
get forum data: |
5ms |
get page messages: |
83ms |
get tp. blocked users: |
2ms |
| others: | 295ms |
| total: | 558ms |

| 0 / 0 |
