Гость
Форумы / Oracle [игнор отключен] [закрыт для гостей] / Чтение текстового файла из поля с типом BLOB средствами языка SQL/PLSQL / 25 сообщений из 39, страница 1 из 2
08.11.2019, 10:56
    #39886645
fragmaker
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Чтение текстового файла из поля с типом BLOB средствами языка SQL/PLSQL
Приветствую, форумчане, и всех грызущих и хвостатых, точащих основы СУБД Oracle! Только начинаю постигать вопросы администрирования СУБД Oracle и вот собственно вопрос: можно ли осуществить чтение из текстового файла через SQL/PLSQL запрос, который загружен в BLOB поле таблицы? Есть ли специальные инструменты, пакеты (наподобие DBMS_LOB), чтобы считать текст из BLOB? Если есть, то как это сделать на SQL/PLSQL? Требуется осуществить поиск по ключевым словам в этом текстовом файле и в зависимости от этого выдать сообщение о наличии или отсутствии этих слов.

P.S. Если что, то изначально известно, что в BLOB поле содержится текстовый файл с расширением txt.
...
Рейтинг: 0 / 0
08.11.2019, 11:04
    #39886648
dmdmdm
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Чтение текстового файла из поля с типом BLOB средствами языка SQL/PLSQL
fragmaker
Только начинаю постигать


Начали с поиска ?
...
Рейтинг: 0 / 0
08.11.2019, 11:09
    #39886651
-2-
-2-
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Чтение текстового файла из поля с типом BLOB средствами языка SQL/PLSQL
fragmaker
осуществить чтение из текстового файла через SQL/PLSQL запрос, который загружен в BLOB поле таблицы?
Кто на ком стоял?
fragmaker
Есть ли специальные инструменты
Чем специальные отличаются от неспециальных?
...
Рейтинг: 0 / 0
08.11.2019, 11:12
    #39886654
fragmaker
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Чтение текстового файла из поля с типом BLOB средствами языка SQL/PLSQL
dmdmdm, начинал...Пришёл к тому, что, как понял, текстовый файл во время записи в BLOB представляется в двоичной или 16-й системе и считывать данные нужно порционно. А примеры, как это сделать - не нашёл. Плохо искал видимо...Если же что-то путаю, то в какую сторону нужно копать? Просто вообще не понятно, с чего начать. Как выбирать "обычные" сведения из типов CHAR, varchar2, number понятно, а вот с чем есть BLOB - вообще непонятно...Нужно наставить на истинный путь силы
...
Рейтинг: 0 / 0
08.11.2019, 11:14
    #39886656
fragmaker
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Чтение текстового файла из поля с типом BLOB средствами языка SQL/PLSQL
-2-, хорошо...можно вообще хоть что-нибудь, хотя бы какой-нибудь пример, потому что поиск в Инете не увенчался успехом и непонятно, с чего начать
...
Рейтинг: 0 / 0
08.11.2019, 11:18
    #39886657
fragmaker
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Чтение текстового файла из поля с типом BLOB средствами языка SQL/PLSQL
-2-, текстовый файл с расширением txt загружен в поле BLOB. Требуется считать его средствами SQL/PLSQL и требуемые слова вывести на экран либо указать, что они есть. Объяснять основы SQL не нужно. Нужны инструменты (любые), которые решат поставленную задачу. И желательно примеры либо наставить на путь силы!
...
Рейтинг: 0 / 0
08.11.2019, 11:18
    #39886658
K790
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Чтение текстового файла из поля с типом BLOB средствами языка SQL/PLSQL
...
Рейтинг: 0 / 0
08.11.2019, 12:10
    #39886692
-2-
-2-
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Чтение текстового файла из поля с типом BLOB средствами языка SQL/PLSQL
fragmaker
Объяснять основы SQL не нужно.
Для общения на одном языке сначала нужно ознакомиться с азбукой и словарем. Это лучше делать по профессионально писанным книгам и документации.
...
Рейтинг: 0 / 0
08.11.2019, 14:37
    #39886800
MazoHist
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Чтение текстового файла из поля с типом BLOB средствами языка SQL/PLSQL
...
Рейтинг: 0 / 0
08.11.2019, 15:03
    #39886818
andrey_anonymous
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Чтение текстового файла из поля с типом BLOB средствами языка SQL/PLSQL
MazoHist

В решении по ссылке профукана важная деталь.
...
Рейтинг: 0 / 0
08.11.2019, 16:47
    #39886877
oragraf
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Чтение текстового файла из поля с типом BLOB средствами языка SQL/PLSQL
andrey_anonymous
В решении по ссылке профукана важная деталь.
Кодировка?
...
Рейтинг: 0 / 0
08.11.2019, 16:51
    #39886879
andrey_anonymous
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Чтение текстового файла из поля с типом BLOB средствами языка SQL/PLSQL
oragraf
andrey_anonymous
В решении по ссылке профукана важная деталь.
Кодировка?

Да
...
Рейтинг: 0 / 0
08.11.2019, 17:01
    #39886882
Кроик Семён
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Чтение текстового файла из поля с типом BLOB средствами языка SQL/PLSQL
fragmaker,

OFF
если там всегда только текст лежит, можно было бы поле сразу CLOB вместо BLOB сделать
...
Рейтинг: 0 / 0
08.11.2019, 17:19
    #39886890
-2-
-2-
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Чтение текстового файла из поля с типом BLOB средствами языка SQL/PLSQL
Кроик Семён
сразу CLOB
Если не мелочиться на "если", то varchar2(1) может оказаться еще сразей.
...
Рейтинг: 0 / 0
14.11.2019, 11:41
    #39888966
fragmaker
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Чтение текстового файла из поля с типом BLOB средствами языка SQL/PLSQL
Кроик Семён, нет. В БД может быть подцеплен любой файл, скрипт по выборке именно текстовых файлов уже сделали, теперь надо достать текст. И вот здесь мои познания заканчиваются. Теперь только надежда на богов SQL/PLSQL.
...
Рейтинг: 0 / 0
14.11.2019, 13:14
    #39889041
-2-
-2-
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Чтение текстового файла из поля с типом BLOB средствами языка SQL/PLSQL
fragmaker
скрипт по выборке именно текстовых файлов уже сделали
Множественное число "сделали" предполагает, что не сам. Если твоему пониманию недоступно условие равенства типа типафайла=текст, то по использованию функции нужно взывать не к просто богам, а к пантеону сингулярности.
...
Рейтинг: 0 / 0
26.12.2019, 09:21
    #39908285
fragmaker
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Чтение текстового файла из поля с типом BLOB средствами языка SQL/PLSQL
andrey_anonymous
MazoHist

В решении по ссылке профукана важная деталь.

А каким образом изменить кодировку после преобразования в CLOB?
...
Рейтинг: 0 / 0
26.12.2019, 09:59
    #39908294
fragmaker
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Чтение текстового файла из поля с типом BLOB средствами языка SQL/PLSQL
andrey_anonymous, привожу пример кода преобразования из BLOB в CLOB
Код: plsql
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.
38.
39.
40.
41.
42.
43.
44.
45.
46.
47.
48.
49.
declare 
    l_clob         CLOB;
    l_dest_offset  PLS_INTEGER := 1;
    l_src_offset   PLS_INTEGER := 1;
    l_lang_context PLS_INTEGER := DBMS_LOB.default_lang_ctx;
    l_warning      PLS_INTEGER;
    vtextfile blob;
    output_text VARCHAR2(1000);
    chars_read_1 BINARY_INTEGER;
    offset INTEGER;
begin
    select 
        ed.elado_bytes into vtextfile -- поле типа BLOB с текстовым файлом
    from 
        app_applications a,
        app_doc adoc,
        doc_foundations d,
        ela_document ed,
        ela_document_props ep
    where
        a.id = adoc.app_id(+)
        and adoc.doc_id = d.id(+)
        and d.id = ED.ELADO_EXT_ID(+)
        and ED.ELADO_DOCUMENT_ID = ep.elado_doc_id(+)
        and ed.ELADO_EXT_ENT_NAME(+) = 'DOC_FOUNDATIONS'
        and d.id = 19966375000; 
    
    -- переводим BLOB в CLOB
    DBMS_LOB.createTemporary(
    lob_loc => l_clob,
    cache   => TRUE);

    DBMS_LOB.converttoclob(
    dest_lob      => l_clob,
    src_blob      => vtextfile,
    amount        => DBMS_LOB.lobmaxsize,
    dest_offset   => l_dest_offset,
    src_offset    => l_src_offset, 
    blob_csid     => DBMS_LOB.default_csid,
    lang_context  => l_lang_context,
    warning       => l_warning);
    
    offset := 1;
    chars_read_1 := 300;
    
    -- Пытаемся прочитать первые 300 символов.
    DBMS_LOB.READ(l_clob, chars_read_1, offset, output_text);
    DBMS_OUTPUT.PUT_LINE(output_text);  
end;


На выводе получаются кракозябры
Код: xml
1.
PK


Текстовый файл в формате UTF-8. Каким образом преобразовать в нормальный текст?
...
Рейтинг: 0 / 0
26.12.2019, 10:08
    #39908297
dmdmdm
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Чтение текстового файла из поля с типом BLOB средствами языка SQL/PLSQL
Для начала нужно убедиться, что в исходных данных текст.
Заголовок похож на заголовок бинарного zip-файла.
А дальше читать про преобразование кодировок .
...
Рейтинг: 0 / 0
26.12.2019, 10:08
    #39908298
Elic
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Чтение текстового файла из поля с типом BLOB средствами языка SQL/PLSQL
fragmaker
Код: xml
1.
PK

Текстовый файл в формате UTF-8. Каким образом преобразовать в нормальный текст?
Распаковать zip.
...
Рейтинг: 0 / 0
26.12.2019, 11:14
    #39908333
-2-
-2-
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Чтение текстового файла из поля с типом BLOB средствами языка SQL/PLSQL
dmdmdm
Заголовок похож на заголовок бинарного zip-файла.
Или эксел 504B0304
...
Рейтинг: 0 / 0
26.12.2019, 12:17
    #39908375
irbis_al
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Чтение текстового файла из поля с типом BLOB средствами языка SQL/PLSQL
fragmaker

Текстовый файл в формате UTF-8. Каким образом преобразовать в нормальный текст?

Ну а база в какой кодировке ведь
Код: plsql
1.
 l_lang_context PLS_INTEGER := DBMS_LOB.default_lang_ctx;


даёт текущую.(И если оне не AL32UTF8 то будет лажа)
Вот тут ниже по ссылке преобразовывают.
https://dba.stackexchange.com/questions/175411/convert-returns-garbage-with-clobs-in-oracle
...
Рейтинг: 0 / 0
26.12.2019, 18:05
    #39908609
andrey_anonymous
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Чтение текстового файла из поля с типом BLOB средствами языка SQL/PLSQL
fragmaker
andrey_anonymous, привожу пример кода преобразования из BLOB в CLOB
Код: plsql
1.
    blob_csid     => DBMS_LOB.default_csid, --вот тут и надо указать идентификатор кодировки BLOB.


Текстовый файл в формате UTF-8. Каким образом преобразовать в нормальный текст?


Но для начала обратите внимание на сообщения коллег о нетекстовой природе содержимого BLOB, я бы тоже предположил ZIP.
Его, кстати, можно распаковать прямо в БД, если лицензированного процессора не жаль
...
Рейтинг: 0 / 0
27.12.2019, 08:21
    #39908822
fragmaker
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Чтение текстового файла из поля с типом BLOB средствами языка SQL/PLSQL
dmdmdm, и действительно..., скорей всего в нашей БД данные предварительно заархивированы и помещены в zip файл, потому что при элементарных проверках
Код: plsql
1.
DBMS_LOB.SUBSTR(ed.elado_bytes, 30)


видим текстовую сигнатуру (епта, новые слова выучил!!! ...)
Код: plsql
1.
504B0304140000000800A93E6E4EF14C5B9E710200002C0700000C002400


а в БД под интерфейсом виден файл *.txt.

Я то вначале подумал, что это Oracle на меня на японо-корея-китайском языке обругалась, а оно вон что значит - ТЕКСТОВАЯ СИГНАТУРА!
...
Рейтинг: 0 / 0
27.12.2019, 08:24
    #39908823
Elic
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Чтение текстового файла из поля с типом BLOB средствами языка SQL/PLSQL
fragmaker
а в БД под интерфейсом виден файл *.txt.
Кулибин, обратись к разработчикам, пока ещё чего-нибудь не сломал.
...
Рейтинг: 0 / 0
Форумы / Oracle [игнор отключен] [закрыт для гостей] / Чтение текстового файла из поля с типом BLOB средствами языка SQL/PLSQL / 25 сообщений из 39, страница 1 из 2
Целевая тема:
Создать новую тему:
Автор:
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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