| 
 | 
| 
 
Нужны примеры работы с большим LOB 
 | 
|||
|---|---|---|---|
| 
 #18+ 
    
  Не так давно начал работать с DB2, до этого работал с несколькими другими базами. Некоторые вещи просто приводят в ступор, не ожидал такого от ИБМ. Есть таблица с полем CLOB, большинство записей небольшие,но есть и побольше. Насколько - не знаю, поскольку пакет DBMS_LOB работает с LOB длинной только до 10M, и я получаю   SQL Error [22001]: Value "******************************************" is too long.. SQLCODE=-433, SQLSTATE=22001 при выполнении SELECT t.feature_id, DBMS_LOB.GETLENGTH(t.RESIDUES) AS len FROM feature t Я не могу даже размер LOB узнать, если он больше 10Mб! Есть ли какие-нибудь пакеты на C или JAVA для работы с LOB в DB2? Опять же в тех примерах, которые уже нашёл, предланалт создавать переменные типа CLOB(2G). Это что, весь LOB за раз в память тащить? Так и базу в своп свалить недолго. Может, я чего-то не понимаю? Версия 11.2 LUW. ...  | 
|||
| 
 : 
 Нравится:
      
  Не нравится:
      
  
   | 
|||
| 21.05.2019, 20:02 | 
  
  
  
   | 
||
| 
 
Нужны примеры работы с большим LOB 
 | 
|||
|---|---|---|---|
| 
 #18+ 
    
  Sergei.Agalakov, Так работает? Код: sql 1. ...  | 
|||
| 
 : 
 Нравится:
      
  Не нравится:
      
  
   | 
|||
| 22.05.2019, 07:48 | 
  
  
  
   | 
||
| 
 
Нужны примеры работы с большим LOB 
 | 
|||
|---|---|---|---|
| 
 #18+ 
    
  Sergei.AgalakovНе так давно начал работать с DB2, до этого работал с несколькими другими базами. Некоторые вещи просто приводят в ступор, не ожидал такого от ИБМ. Есть таблица с полем CLOB, большинство записей небольшие,но есть и побольше. Насколько - не знаю, поскольку пакет DBMS_LOB работает с LOB длинной только до 10M, и я получаю   SQL Error [22001]: Value "******************************************" is too long.. SQLCODE=-433, SQLSTATE=22001 при выполнении IBM заставляет Вас использовать LOB LOCATORs, и это (обычно) правильно. Для C смотрите: sqllib/samples/c/dtlob.sqc sqllib/samples/cli/dtlob.c Для ODBC/CLI "словами": LOB locators in CLI applications Для Java смотрите тут - LOB locators with the IBM Data Server Driver for JDBC and SQLJ и тут - Progressive streaming with the IBM Data Server Driver for JDBC and SQLJ ...  | 
|||
| 
 : 
 Нравится:
      
  Не нравится:
      
  
   | 
|||
| 22.05.2019, 12:53 | 
  
  
  
   | 
||
| 
 
Нужны примеры работы с большим LOB 
 | 
|||
|---|---|---|---|
| 
 #18+ 
    
  Mark Barinstein, Спасибо, LENGTH работает, но мне надо подстроку искать и заменять, а там то же ограничение в 10Mb. Ну хоть узнал, что у меня есть CLOB на 220Mb. Начал писать свои функции на JAVA, пока получаю Код: plaintext 1. Код: java 1. 2. 3. 4. 5. 6. Код: plsql 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. разбираюсь, что не так. Пытаюсь следовать JAVA routines но пока где-то косячу. ...  | 
|||
| 
 : 
 Нравится:
      
  Не нравится:
      
  
   | 
|||
| 22.05.2019, 18:50 | 
  
  
  
   | 
||
| 
 
Нужны примеры работы с большим LOB 
 | 
|||
|---|---|---|---|
| 
 #18+ 
    
  CawaSPb, Спасибо за ссылки, не видел раньше. Смущает Код: plaintext 1. 2. Calls a stored procedure with a LOB value as an input or output argument Assigns a LOB host variable to a LOB locator host variable в Progressive streaming with the IBM Data Server Driver for JDBC and SQLJ Получается, что полноценная работа с большими LOB для DB2 возможна только вне базы. При попытке найти/заменить подстроку в CLOB 1Gb из хранимки придется материализовать весь LOB в переменную, отожрав 1 Gb памяти за раз. А если так звезды встали, что несколько пользователей решили это сделать одновременно? Может, есть какой-то обходной путь для использовния локатора в хранимках? Как-то у Оракла это все достаточно беспроблемно работало. ...  | 
|||
| 
 : 
 Нравится:
      
  Не нравится:
      
  
   | 
|||
| 22.05.2019, 19:03 | 
  
  
  
   | 
||
| 
 
Нужны примеры работы с большим LOB 
 | 
|||
|---|---|---|---|
| 
 #18+ 
    
  Sergei.Agalakov, А Вы что-то типа sqlj.install_jar('file:<path>/JLOB.jar', 'JLOB') делали? (см. sqllib/samples/java/jdbc/ - udfcat, udfjcat, UDF*.java, UDF*.db2) Про "LOB object is also materialized..." - там происходит "передача по значению", и такое поведение естественно. Передовайте Primary Key соответствующей строки и формируйте LOB LOCATOR/используйте возможности progressive streaming внутри хранимки или UDF. При этом у Вас получатся или более приближённые к бизнес-логике UDF/процедурки, или некоторый "фреймвок" со своими соглашениями, если Вы хотите сделать универсальный набор инструментов для работы с LOBами. ...  | 
|||
| 
 : 
 Нравится:
      
  Не нравится:
      
  
   | 
|||
| 23.05.2019, 12:34 | 
  
  
  
   | 
||
| 
 
Нужны примеры работы с большим LOB 
 | 
|||
|---|---|---|---|
| 
 #18+ 
    
  CawaSPb, Спасибо, хороший совет. Лучше б только ИБМ за меня этот код написала. Я JAR не делал, пока обошёлся отдельной хранимкой. Так и не смог заставить работать с Код: plaintext Код: java 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. ...  | 
|||
| 
 : 
 Нравится:
      
  Не нравится:
      
  
   | 
|||
| 23.05.2019, 20:54 | 
  
  
  
   | 
||
| 
 | 

start [/forum/topic.php?desktop=1&fid=43&tid=1600252]:  | 
    0ms | 
get settings:  | 
    8ms | 
get forum list:  | 
    13ms | 
check forum access:  | 
    3ms | 
check topic access:  | 
    3ms | 
track hit:  | 
    172ms | 
get topic data:  | 
    9ms | 
get forum data:  | 
    2ms | 
get page messages:  | 
    38ms | 
get tp. blocked users:  | 
    1ms | 
| others: | 11ms | 
| total: | 260ms | 

| 0 / 0 | 

    Извините, этот баннер — требование Роскомнадзора для исполнения 152 ФЗ.
    
    
    «На сайте осуществляется обработка файлов cookie, необходимых для работы сайта, а также для анализа использования сайта и улучшения предоставляемых сервисов с использованием метрической программы Яндекс.Метрика. Продолжая использовать сайт, вы даёте согласие с использованием данных технологий».
    
    
    ... ля, ля, ля ...