powered by simpleCommunicator - 2.0.51     © 2025 Programmizd 02
Форумы / Firebird, InterBase [игнор отключен] [закрыт для гостей] / firebird поиск всех строк в blob по подстроке
25 сообщений из 43, страница 1 из 2
firebird поиск всех строк в blob по подстроке
    #39619871
SMV
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
SMV
Гость
Не могу решить задачку!
Задана таблица в БД. Сервер Firebird 2.5
CREATE TABLE BLOB_TBL (
ID UHIR48 DEFAULT 'НЕТ' NOT NULL,
SAME_FILE BLOB SUB_TYPE 0 SEGMENT SIZE 80 NOT NULL,
NAME_FILE STR_1024 DEFAULT 'НЕТ',
EXT_FILE STR_16 DEFAULT 'НЕТ',
NOTE_FILE STR_256 DEFAULT 'НЕТ'
);
Заполняю таблицу параметрами. В BLOB заноситься файл. Необходимо получить все строки, содержащие подстроку. Может кто-нибудь подсказать решение?
...
Рейтинг: 0 / 0
firebird поиск всех строк в blob по подстроке
    #39619879
Любезный
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
1. Используй BLOB SUBTYPE 1 - он именно для текста.
2. Вместе с п.1 - предикат CONTAINING.
...
Рейтинг: 0 / 0
firebird поиск всех строк в blob по подстроке
    #39619888
Dimitry Sibiryakov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
SMVМожет кто-нибудь подсказать решение?

Убираем из задачи Firebird, таблицу и поле. Остаётся файл, который можно грепать до
полного удовлетворения.
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
firebird поиск всех строк в blob по подстроке
    #39619951
SMV
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
SMV
Гость
Любезный, и что я получу? что в этом Поле есть подстрока или нет. А мне надо найти все строки в этом BLOBe, содержащие подстроку поиска....
...
Рейтинг: 0 / 0
firebird поиск всех строк в blob по подстроке
    #39619952
SMV
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
SMV
Гость
Dimitry Sibiryakov, файл лежит физически на другой сетевой машине и не в общем доступе. Что трепать будем-то, до полного удовлетворения?
...
Рейтинг: 0 / 0
firebird поиск всех строк в blob по подстроке
    #39619955
Гаджимурадов Рустам
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
SMV> мне надо найти все строки в этом BLOBe, содержащие подстроку поиска....

Пишите ХП (ну или EB) и парсите.
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
firebird поиск всех строк в blob по подстроке
    #39619958
SMV
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
SMV
Гость
Любезный, и еще про тип 1... а что искать можно только в типе 1? а в типе 0 уже нельзя? Мне кажется что серверу все равно где искать и что... Если можно искать, то сервер будет искать...
...
Рейтинг: 0 / 0
firebird поиск всех строк в blob по подстроке
    #39619961
Dimitry Sibiryakov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
SMVфайл лежит физически на другой сетевой машине и не в общем доступе. Что трепать будем-то,
до полного удовлетворения?

Сохраняем содержимое блоба в файл на локальной машине. Грепаем до полного удовлетворения.
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
firebird поиск всех строк в blob по подстроке
    #39619962
SMV
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
SMV
Гость
Гаджимурадов Рустам, Спасибо, я тоже до этого дошел... Видимо по другому никак, буду разбираться. Нашел старенькую UDF-ку textparser. Правда доков нет... У Вас случаем ничего нет по этой теме?
...
Рейтинг: 0 / 0
firebird поиск всех строк в blob по подстроке
    #39619963
Гаджимурадов Рустам
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
SMV> Нашел старенькую UDF-ку textparser. ... У Вас случаем ничего нет по этой теме?

Над текстовым БЛОБом можно выполнять все те же операции, что и над строкой.
В 2.5 достаточно встроенных строковых функций для решения поставленной задачи.
Правда, с т.з. производительности это может быть не лучшим решением, так что лучше
будет писать свою специализированную UDF, которая вернёт необходимый результат.
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
firebird поиск всех строк в blob по подстроке
    #39619964
SMV
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
SMV
Гость
Dimitry Sibiryakov, а кто Вам сказал, что файл маленький? У нас есть файлы и по 8 гиг и не один. С утра пришел, запустил поиск и можно в отпуск ехать...
...
Рейтинг: 0 / 0
firebird поиск всех строк в blob по подстроке
    #39619965
SMV
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
SMV
Гость
Гаджимурадов Рустам, Большое спасибо, буду пробовать ... Тему пока не закрываю.
...
Рейтинг: 0 / 0
firebird поиск всех строк в blob по подстроке
    #39619966
miwaonline
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
SMVDimitry Sibiryakov, а кто Вам сказал, что файл маленький? У нас есть файлы и по 8 гиг и не один.

Внутри в базе?
...
Рейтинг: 0 / 0
firebird поиск всех строк в blob по подстроке
    #39619969
Dimitry Sibiryakov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
SMVа кто Вам сказал, что файл маленький? У нас есть файлы и по 8 гиг и не один. С утра
пришел, запустил поиск и можно в отпуск ехать...

Уверяю тебя, это будет быстрее, чем маяться фигнёй в ХП.

PS: Этот геморрой на свою голову вы выдумали сами, нарушив первую нормальную форму.
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
firebird поиск всех строк в blob по подстроке
    #39619979
Гаджимурадов Рустам
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Ну как... Парсить 8 гиг БЛОБа, в UDF, c утреца...
Не знаю чего там у вас и как, но, даже если нет
доступа к файлу напрямую - всё равно разумнее
парсить файл, не задействуя при этом БД, кроме
как посредника/пусковика (UDF это позволяет)
и, возможно, хранение результатов, если нужно
их сохранять (UDF это тоже позволяет).

Хотя это, конечно, кривая архитектура и костыль,
следовало бы задуматься, возможно, о каком-то
отдельном приложении, которое бы делало всю
нужную работу по парсингу и пр. и запускалось по
расписанию в удобное время или висело в сервисах.
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
firebird поиск всех строк в blob по подстроке
    #39620031
Фотография kdv
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
SMV,

хоть тут практически на все уже ответили, дополню, что в BLOB нет никаких "строк", текстовый он или нет. Сервером блоб рассматривается как единый кусок данных. Соответственно, поиск подстроки в этом блобе прекращается как только найдено первое соответствие.
Чтобы искать подстроку в каких-то там строках, надо этот блоб считать на клиента, в набор строк, и дальше искать на подстроку подстрочно.
Теоретически и udf можно написать, конечно, которая будет выдавать блоб, содержащий те самые "строки".
...
Рейтинг: 0 / 0
firebird поиск всех строк в blob по подстроке
    #39620130
SMV
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
SMV
Гость
Dimitry Sibiryakov, а 1НФ у Вас о чем говорит? У меня например о нарушении атомарности. А у Вас?
...
Рейтинг: 0 / 0
firebird поиск всех строк в blob по подстроке
    #39620142
Фотография kdv
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
SMV,

автор запихнул строки, которыми он оперирует, в один столбец. Вот и нарушение атомарности. Это то же самое, как, например, запихнуть ФИО в одну строку, а потом устраивать траходром с выделением Ф, И и О.
При проектировании БД одними из этапов являются сохранение данных и извлечение данных. И если с извлечением проблемы, то надо менять сохранение.
...
Рейтинг: 0 / 0
firebird поиск всех строк в blob по подстроке
    #39620171
Фотография Старый плюшевый мишка
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
kdvSMV,

автор запихнул строки, которыми он оперирует, в один столбец. Вот и нарушение атомарности. Это то же самое, как, например, запихнуть ФИО в одну строку, а потом устраивать траходром с выделением Ф, И и О.
При проектировании БД одними из этапов являются сохранение данных и извлечение данных. И если с извлечением проблемы, то надо менять сохранение.

Я даже больше скажу. 90% обращений к базе - чтения. Поэтому местами имеет смысл идти на некоторый гемор с сохранением, если это существенно облегчает чтение.
...
Рейтинг: 0 / 0
firebird поиск всех строк в blob по подстроке
    #39620188
d7i
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Я вообще не понимаю, зачем пихать в базу текстовые файлы по 8Гб?
Какой там с них толк?
Если так уж надо с ними работать, то лучше их хранить в отдельных папках в
оригинальном виде, а в базе держать ссылки на них, ну и какие-то атрибуты
(описания, даты и т.п.) для идентификации.
Обрабатывать большие текстовые файлы средствами СУБД какой-то мазохизм...
Для этого есть куча обычных программ.
...
Рейтинг: 0 / 0
firebird поиск всех строк в blob по подстроке
    #39620200
SMV
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
SMV
Гость
d7i,
извините, а кто сказал про текстовые файлы? файлы могут быть и AVI и TIFF и Image и т.д. Как-то так...
...
Рейтинг: 0 / 0
firebird поиск всех строк в blob по подстроке
    #39620202
SMV
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
SMV
Гость
kdv, про автора не понял. Какой автор? Если про меня, то пример вначале темы (5 отдельных столбцов с PK в первом). Так кто и что запихнул в один столбец?
...
Рейтинг: 0 / 0
firebird поиск всех строк в blob по подстроке
    #39620205
Гаджимурадов Рустам
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
А какие строки/подстроки можно искать в AVI и TIFF и пр.?
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
firebird поиск всех строк в blob по подстроке
    #39620210
d7i
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
SMV,
Тем более, какую подстроку там искать?
Я, к примеру, также держу некоторые бинарные и текстовые файлы в БД (конечно, не по 8Гб, максимум 1-2Мб).
Всякие там шаблоны, процедуры, звуки и т.д.
И подстроку иногда в них ищу (преимущественно в текстовых) через функцию locate.
Первое вхождение, мне этого достаточно...
...
Рейтинг: 0 / 0
firebird поиск всех строк в blob по подстроке
    #39620212
Dimitry Sibiryakov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
d7iконечно, не по 8Гб

И в этом ты очень предусмотрителен, поскольку на пороге в четыре гигабайта некоторых
оптимистов ждут весьма забавные грабли.
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
25 сообщений из 43, страница 1 из 2
Форумы / Firebird, InterBase [игнор отключен] [закрыт для гостей] / firebird поиск всех строк в blob по подстроке
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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