powered by simpleCommunicator - 2.0.53     © 2025 Programmizd 02
Форумы / IBM DB2, WebSphere, IMS, U2 [игнор отключен] [закрыт для гостей] / Переливание BLOB-ов с конкатенацией
7 сообщений из 7, страница 1 из 1
Переливание BLOB-ов с конкатенацией
    #33115623
dimzon
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Помогите пожалуйста составить запросик, должно работать через CLI

есть таблица сhunks:

create table chunks
(
id int,
num int,
data BLOB(...)
)

есть таблица destination
create table destination
(
id int,
data BLOB(...)
)

сделать такую выборку:
select data from chunks where id=111 order by num

сконкатенировать полученные BLOB-ы в полученном порядке и занести в таблицу destination


Спасибо!
...
Рейтинг: 0 / 0
Переливание BLOB-ов с конкатенацией
    #33115653
Фотография riman
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Прогу писать надо. Какую - зайди на соответствующий форум.
...
Рейтинг: 0 / 0
Переливание BLOB-ов с конкатенацией
    #33115678
dimzon
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
какой форум то?
...
Рейтинг: 0 / 0
Переливание BLOB-ов с конкатенацией
    #33115871
Фотография riman
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
На чем собираешься реализовывать - в такой форум и обращайся. Могу на яве
показать. Хотя может быть я ошибаюсь и можно одним скулем обойтись? :)

Posted via ActualForum NNTP Server 1.2
...
Рейтинг: 0 / 0
Переливание BLOB-ов с конкатенацией
    #33115891
dimzon
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Ну покажи на Яве, мне всё равно.

Мысль сделать Select собрать массив а потом уже запихнуть неинтересна - во первых это лишний раз гонять данные между сервером БД и сервером приложений во вторых необходимо на сервере приложений выделить буфер соотв. размера. А если у меня там этих кусочков в chunks на гигабайт?

В Oracle и MsSql для этих целей конструировался и выполнялся анонимный Batch.
Oracle:
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
			string sQuery =
				"declare \n" +
				"dest_lob " + sLOBName + ";\n" +
				"cursor src is select " + sSrcColumn + " as lob from " + sSrcTableQName + " where " + sSrcWhereClause + " order by " + sSrcOrderBy + ";\n" +
				"begin\n" +
				"update " + sDstTableQName + " set " + sDstColumn + " = empty_" + sLOBName + "() where " + sDstWhereClause + ";\n" +
				"select " + sDstColumn + " into dest_lob from " + sDstTableQName + " where " + sDstWhereClause + ";\n" +
				"for src_row in src loop\n" +
				"dbms_lob.append(dest_lob, src_row.lob);\n" +
				"end loop;\n" +
				"end;";
MsSql:
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
			string sQuery = 
				"SET NOCOUNT ON\n" +
					"SET ROWCOUNT 0\n" +
					"DECLARE @pSubChunk VARBINARY(16)\n" +
					"DECLARE @pMainChunk VARBINARY(16)\n" +
					"DECLARE crBinData CURSOR FOR\n" +
					"\tSELECT TEXTPTR([" + sSrcColumn + "])\n" +
					"\tFROM " + sSrcTableQName + "\n" +
					"\tWHERE " + sSrcWhereClause + "\n" +
					"\tORDER BY " + sSrcOrderBy + "\n" +
					"UPDATE " + sDstTableQName + " SET [" + sDstColumn + "] = NULL WHERE " + sDstWhereClause + "\n" +
					"SELECT @pMainChunk = TEXTPTR([" + sDstColumn + "]) FROM " + sDstTableQName + " WHERE " + sDstWhereClause + "\n" +
					"OPEN crBinData\n" +
					"WHILE (0=0)\n" +
					"BEGIN\n" +
					"\tFETCH NEXT FROM crBinData INTO @pSubChunk\n" +
					"\tIF (@@FETCH_STATUS <> 0) BREAK\n" +
					"\tUPDATETEXT \n" +
					"\t" + sDstTableQName + ".[" + sDstColumn + "] @pMainChunk NULL NULL " + sSrcTableQName + ".[" + sSrcColumn + "] @pSubChunk\n" +
					"END\n" +
					"CLOSE crBinData\n" +
					"DEALLOCATE crBinData\n";
...
Рейтинг: 0 / 0
Переливание BLOB-ов с конкатенацией
    #33115917
Фотография riman
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Мысль сделать Select собрать массив а потом уже запихнуть неинтересна

:) мне тоже кстати не нравится, но именно это я и предполагал. Скорей всего
также как в Oracle это реализуется и в DB2. Тогда надо ждать местных
монстров.

Posted via ActualForum NNTP Server 1.2
...
Рейтинг: 0 / 0
Переливание BLOB-ов с конкатенацией
    #33116202
nkulikov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Cдается мне что это все можно сделать одним запросом
читать Cookbook
...
Рейтинг: 0 / 0
7 сообщений из 7, страница 1 из 1
Форумы / IBM DB2, WebSphere, IMS, U2 [игнор отключен] [закрыт для гостей] / Переливание BLOB-ов с конкатенацией
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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