powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Oracle APEX [игнор отключен] [закрыт для гостей] / APEX 5.0 Clob в модальном окне
19 сообщений из 19, страница 1 из 1
APEX 5.0 Clob в модальном окне
    #39211243
Фотография l_kator
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Есть задача - заливать логи шедулера в таблицу базы данных и показывать их пользователю по запросу.

Первую часть было легче всего выполнить. Теперь есть таблица с полем типа Clob, в котором лежит сам лог. Интерактивный отчет на этой таблице не дает фильтровать или сортировать данные. Выдает ошибку ORA-06502. Как одно из решений, пробую по клику на имя лога показать его в модальной строке.

Проблемы:
1.Модальное окно всего на четверть экрана.
2.Теряется форматирование текста.

Как победить?
...
Рейтинг: 0 / 0
APEX 5.0 Clob в модальном окне
    #39211244
Фотография l_kator
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
А вот так показывает апекс
...
Рейтинг: 0 / 0
APEX 5.0 Clob в модальном окне
    #39211247
Фотография l_kator
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
l_katorКак одно из решений, пробую по клику на имя лога показать его в модальной строке.


В модальном окне, конечно же
...
Рейтинг: 0 / 0
APEX 5.0 Clob в модальном окне
    #39211261
Фотография Petro123
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
l_kator,
представьте что файл лога это отчёты или картинки скачиваемы айтемс "File Browser".
Т.е. показывать логи надо средстваими клиента (как при скачке)
...
Рейтинг: 0 / 0
APEX 5.0 Clob в модальном окне
    #39211277
Фотография l_kator
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Это было первое самое логичное решение. Но не устаивает заказчика категорически
...
Рейтинг: 0 / 0
APEX 5.0 Clob в модальном окне
    #39211346
heavyside
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
l_kator,

Мне кажется, вам стоит заюзать Region с типом PL/SQL Dynamic Content, и там указать устраивающую вас процедуру по запросу в гугл htp.p clob

можете его обрамить textarea или чем хотите и доукрасить стилями)
...
Рейтинг: 0 / 0
APEX 5.0 Clob в модальном окне
    #39211347
Фотография Petro123
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
l_katorЭто было первое самое логичное решение. Но не устаивает заказчика категорически
а вы скажите что дороже будет.
Главное, разницы то никакой - что вы окно папап сделаете, что он сам откроет в notepad.exe.
Только в вашем окне нифига не работает. В том числе и поиск.
- возьмите лог в 400Мб, откройте эксплорере и покажите заказчику.
Мож передумает.
...
Рейтинг: 0 / 0
APEX 5.0 Clob в модальном окне
    #39211389
Фотография l_kator
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Petro123,

Вот тут то и засада, цена не пугает, сроки тоже.
Мысли вслух: Изобрести процесс, который в фоне все скачает, в блокноте откроет и после закрытия удалит временный файл...
:) Но это же ужас просто! Я сама на такое не готова пойти, даже за большие деньги
...
Рейтинг: 0 / 0
APEX 5.0 Clob в модальном окне
    #39211391
Фотография l_kator
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
P.S. Поиск средствами браузера работает
...
Рейтинг: 0 / 0
APEX 5.0 Clob в модальном окне
    #39211402
Фотография Petro123
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
l_katorМысли вслух: Изобрести процесс, который в фоне все скачает,
нет. Без спроса юзверя нельзя и невозможно.
Только десктоп, а не веб-приложение.
...
Рейтинг: 0 / 0
APEX 5.0 Clob в модальном окне
    #39211403
Фотография Petro123
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
l_katorP.S. Поиск средствами браузера работает
допустим. А тормоза при 400Мб?
...
Рейтинг: 0 / 0
APEX 5.0 Clob в модальном окне
    #39211408
Фотография Petro123
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
l_kator,
Возьмите тест файл большой и откройте Файл - открыть
...
Рейтинг: 0 / 0
APEX 5.0 Clob в модальном окне
    #39211473
Фотография Petro123
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Есть 3 ий вариант AFAIK.
Читать прямо с файловой системы файлы логи Ораклом. Там ему надо разрешить читать папку.
...
Рейтинг: 0 / 0
APEX 5.0 Clob в модальном окне
    #39211574
non-apexoid
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
l_kator,
1. Размеры модального окна можно изменить. Если не возиться с опциями шаблона, просто измените размер вызовом
Код: javascript
1.
$("#YOUR_MODAL_STATIC_ID").dialog({width:XXX,height:YYY})


2. clob лучше показывать кусочками - сделайте pagination. Чтобы выглядело красиво - заменять переводы строки (+ возвраты каретки) на <br>
3. Поиск по clob - с помощью отдельного поля поиска + процедуры поиска по clob
4. Сделайте все это плагином (или поручите кому-то) - и общественность скажет большое спасибо.
...
Рейтинг: 0 / 0
APEX 5.0 Clob в модальном окне
    #39211576
Фотография Petro123
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
non-apexoidЧтобы выглядело красиво - заменять переводы строки (+ возвраты каретки) на <br>
только если Вкл\Выкл фичи если переброска строк. Т.к. логи при переброске строк нечитабельны + горизонтальный скроллинг.
И лучше админов спросить\посоветоваться. Это же для них пишется. А они люди с характером)).
...
Рейтинг: 0 / 0
APEX 5.0 Clob в модальном окне
    #39211577
Фотография Petro123
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
non-apexoidи общественность скажет большое спасибо.
либо побьёт, т.к. неважно какое окно апекс или notepad - главное функционал.
...
Рейтинг: 0 / 0
APEX 5.0 Clob в модальном окне
    #39211609
non-apexoid
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Petro123,
1. Вопрос на засыпку : а что, notepad реагирует на перевод строки не так, как браузер на <br>?
2. Главное функционал. Трудно поспорить с очевидным. Автор поста столкнулась с проблемами при попытке поиска в clob. А если нужно найти какое-нибудь сообщение в группе логов? Например, записи за последнюю неделю с определённой ошибкой. Будете открывать блокнотом все записи по очереди? Ну-ну. Возможно, стоит подумать о добавлении в таблицу дополнительного поля с типом varchar2, куда при заполнении clob складывать ключевые слова или фразы из лога. Затем интерактивным отчетом ищем все записи с нужным вхождением - ну а дальше дело фантазии, хоть блокнот.
3. А вообще, возможно, целесообразно сразу бить лог на записи и предоставить пользователю кучу возможностей поиска и сортировки.

wbr
...
Рейтинг: 0 / 0
APEX 5.0 Clob в модальном окне
    #39211636
Фотография Petro123
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
non-apexoid,
- мы ж прогаммисты). У меня notepad+ а не просто notepad. У него переброс строки горячая клавиша.
Хуже всего когда делают добро для людей не посоветовавшись с этими самыми людьми.
Уж кто кто, а админы имеют средства для логов.
- при поиске подсвечивать надо, опять же.
Удачи аффтару!
...
Рейтинг: 0 / 0
APEX 5.0 Clob в модальном окне
    #39212775
Фотография l_kator
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Спасибо всем за советы.
Задача абсурдна изначально. Логи будут смотреть не админы, а те, кто запускает процессы, таких людей тут называют оперэйшенс и они часто далеки от программирования. Поиском пользоваться НЕ будут 99%, оставшийся 1% устраивает браузерный поиск.
В логах максимальная длина строки строго ограничена, поэтому подогнать ширину окна к ограничению и обойтись без горизонтальной прокрутки показалось очевидным решением.

Ширину окна подогнала через теплейт. Там есть параметр Dialog Width.
Для красоты отображения пришлось преобразовать перевод каретки и знаки > и < к HTML формату. Для замены символов использовала функцию из блога Т.Кайта.

Код: sql
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.
50.
51.
52.
53.
54.
55.
create or replace function f_lob_replace(
in_clob IN CLOB, in_replace_string IN VARCHAR2, in_replace_with IN VARCHAR2)
        /**
        * Replaces all Occurrences of a String with another within a CLOB
        * Original Source see: http://66.221.222.85/reference/dbms_lob.html
        * @AUTHOR: AM, 20101021,
        * @PARAM:  in_clob           IN CLOB,
        *          in_replace_string IN VARCHAR2,
        *          in_replace_with   IN VARCHAR2
        * @RETURN: CLOB
        * @EXCEPTION:
        * @SEE:
        */
        RETURN CLOB
    IS
        lc_this_unit_name   CONSTANT VARCHAR2 (30) := 'REPLACE4';
        --
        lv_buffer                    VARCHAR2 (32767);
        lv_amount                    BINARY_INTEGER := 16000;
        lv_pos                       PLS_INTEGER := 1;
        lv_clob_len                  PLS_INTEGER;
        lv_retval                    CLOB := EMPTY_CLOB;
    BEGIN
        -- initalize the new clob (lv_retval)
        DBMS_LOB.createtemporary (lv_retval, TRUE);
        lv_clob_len := DBMS_LOB.getlength (in_clob);

        WHILE lv_pos <= lv_clob_len
        LOOP
            DBMS_LOB.read (in_clob,
                           lv_amount,
                           lv_pos,
                           lv_buffer);

            IF lv_buffer IS NOT NULL
            THEN
                -- replace the text
                loop
                exit when instr(lv_buffer,in_replace_string) = 0;
                lv_buffer := REPLACE (lv_buffer, in_replace_string, in_replace_with);
                end loop;
                -- write it to the new clob (lv_retval)
                DBMS_LOB.writeappend (lv_retval, LENGTH (lv_buffer), lv_buffer);
            END IF;

            lv_pos := lv_pos + lv_amount;
        END LOOP;

        RETURN lv_retval;
    --
    EXCEPTION
        WHEN OTHERS
        THEN
            RAISE;
    END ;

...
Рейтинг: 0 / 0
19 сообщений из 19, страница 1 из 1
Форумы / Oracle APEX [игнор отключен] [закрыт для гостей] / APEX 5.0 Clob в модальном окне
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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