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

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

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

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


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

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

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

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


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

wbr
...
Рейтинг: 0 / 0
09.04.2016, 12:39
    #39211636
Petro123
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
APEX 5.0 Clob в модальном окне
non-apexoid,
- мы ж прогаммисты). У меня notepad+ а не просто notepad. У него переброс строки горячая клавиша.
Хуже всего когда делают добро для людей не посоветовавшись с этими самыми людьми.
Уж кто кто, а админы имеют средства для логов.
- при поиске подсвечивать надо, опять же.
Удачи аффтару!
...
Рейтинг: 0 / 0
11.04.2016, 16:06
    #39212775
l_kator
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
APEX 5.0 Clob в модальном окне
Спасибо всем за советы.
Задача абсурдна изначально. Логи будут смотреть не админы, а те, кто запускает процессы, таких людей тут называют оперэйшенс и они часто далеки от программирования. Поиском пользоваться НЕ будут 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
Форумы / Oracle APEX [игнор отключен] [закрыт для гостей] / APEX 5.0 Clob в модальном окне / 19 сообщений из 19, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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