Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / Oracle APEX [игнор отключен] [закрыт для гостей] / Проблема с использованием GLOBAL TEMPORARY TEBLE в PLSQL блоках / 14 сообщений из 14, страница 1 из 1
19.09.2014, 13:10
    #38751457
maxandsoft
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Проблема с использованием GLOBAL TEMPORARY TEBLE в PLSQL блоках
Сразу пишу APEX Collection не подходят т.к. обрабатываются большие объемы данных в цикле и ADD MEMBER очень медленный с GTT данные добавляются на несколько порядков быстрее.


Проблема в следующем созданы таблицы с типом по коммиту ON COMMIT PRESERVE ROWS , чтобы записи после коммита оставались.
В таблице имеется поле с именем пользователя чтобы данные были видны только ему. Перед каждым заполнением временной таблицы делаю DELETE данных для текущего пользователя, но почему то IRR (интерактивный отчет) при обращении не отображает данные, но если сделать тупой REFRESH (по кнопке F5) данные появляются, в чем может быть проблема?
...
Рейтинг: 0 / 0
19.09.2014, 14:17
    #38751570
maxandsoft
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Проблема с использованием GLOBAL TEMPORARY TEBLE в PLSQL блоках
SuPPler Вы же точно знаете как решить проблему, подскажите
...
Рейтинг: 0 / 0
19.09.2014, 14:19
    #38751573
maxandsoft
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Проблема с использованием GLOBAL TEMPORARY TEBLE в PLSQL блоках
Пожалуйста :-)
...
Рейтинг: 0 / 0
19.09.2014, 14:22
    #38751579
maxandsoft
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Проблема с использованием GLOBAL TEMPORARY TEBLE в PLSQL блоках
Еще уточнение заполнение таблиц делаю в процессе AfterHeader
...
Рейтинг: 0 / 0
19.09.2014, 15:21
    #38751662
Al_vrn
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Проблема с использованием GLOBAL TEMPORARY TEBLE в PLSQL блоках
maxandsoft, вынужден снова дать ссылку на otn: https://community.oracle.com/thread/2497921?tstart=0
Вы при заполнении этих таблиц юзаете какие-нибудь items? Скорее всего, они на момент работы After Header пустые.
Ну и в дополнение:
Use Debug mode to trace the rendering and processing of a page.
The After Header computation is performed before the After Header ARF process fetches the column value. You can see the order of page events using Utilities > Page Events in the page definition.
...
Рейтинг: 0 / 0
19.09.2014, 15:50
    #38751706
SvDev
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Проблема с использованием GLOBAL TEMPORARY TEBLE в PLSQL блоках
Al_vrn,

+ GTT, ввиду архитектуры, придётся заполнять каждый раз перед отрисовкой страницы.

посмотрите в сторону

APEX_COLLECTION.ADD_MEMBER S
APEX_COLLECTION.CREATE_COLLECTION_FROM_QUERY
...
Рейтинг: 0 / 0
19.09.2014, 17:49
    #38751894
maxandsoft
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Проблема с использованием GLOBAL TEMPORARY TEBLE в PLSQL блоках
Al_vrn, да ITEMS использую но только application items global scope и при этом они точно заполнены, т.к. их заполняю при авторизации и использую в других блоках и процессах
...
Рейтинг: 0 / 0
19.09.2014, 17:50
    #38751896
maxandsoft
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Проблема с использованием GLOBAL TEMPORARY TEBLE в PLSQL блоках
SvDev, Я как раз от них ухожу я в начале поста писал создание коллекции из селекта занимает 28 минут, то же самое в цикле во временную таблицу 2 минуты
...
Рейтинг: 0 / 0
19.09.2014, 17:53
    #38751900
maxandsoft
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Проблема с использованием GLOBAL TEMPORARY TEBLE в PLSQL блоках
SvDev, скорее всего попробую заполнять перед отрисовкой, но вроде же когда делаю глобальную временную таблицу, и резерв по коммиту, то должна оставаться, даже остается но не всегда отображает данные в IRR ((((( после рефреша через браузер отображает (((((((
...
Рейтинг: 0 / 0
19.09.2014, 17:57
    #38751905
maxandsoft
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Проблема с использованием GLOBAL TEMPORARY TEBLE в PLSQL блоках
maxandsoft, еще поправочка заметил закономерность когда формирую записи временной таблицы на одной странице и перехожу на другую по кнопке Submit который привязана к branch на следующую страницу то с временной таблицей все гуд она отражается, а когда просто кнопка с редиректом на страницу приложения то раз через раз отражается (это нет закономерности)

(((((((
...
Рейтинг: 0 / 0
19.09.2014, 17:59
    #38751910
maxandsoft
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Проблема с использованием GLOBAL TEMPORARY TEBLE в PLSQL блоках
maxandsoft, но опять же отражается правильно в JQTREE стандартном компоненте APEX а с IRR глюки шмуки (((((
...
Рейтинг: 0 / 0
19.09.2014, 18:31
    #38751947
SvDev
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Проблема с использованием GLOBAL TEMPORARY TEBLE в PLSQL блоках
maxandsoftSvDev, скорее всего попробую заполнять перед отрисовкой, но вроде же когда делаю глобальную временную таблицу, и резерв по коммиту, то должна оставаться, даже остается но не всегда отображает данные в IRR ((((( после рефреша через браузер отображает (((((((
gtt не очень вписывается в архитектуру апекса.
При выполнении запросов к апексу, сессии оракла назначаются динамически, при этом не закрываются в конце, а просто тупо очищаются.

Код: 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.
50.
51.
52.
53.
54.
55.
56.
57.
58.
59.
60.
61.
62.
63.
64.
SQL*Plus: Release 11.1.0.6.0 - Production on Пт Сен 19 20:05:45 2014

Copyright (c) 1982, 2007, Oracle.  All rights reserved.

Введите пароль:

Присоединен к:
Oracle Database 11g Enterprise Edition Release 11.2.0.3.0 - 64bit Production
With the Partitioning, Oracle Label Security, OLAP, Data Mining
and Real Application Testing options

SQL> create global temporary table test2313 (x number) on commit preserve rows;

Таблица создана.

SQL>
SQL> insert into test2313 values(1);

1 строка создана.

SQL>
SQL> commit;

Фиксация обновлений завершена.

SQL>
SQL> begin
  2   dbms_session.reset_package;
  3  end;
  4  /

Процедура PL/SQL успешно завершена.

SQL>
SQL> begin
  2   dbms_session.modify_package_state(dbms_session.reinitialize);
  3  end;
  4  /

Процедура PL/SQL успешно завершена.

SQL>
SQL> begin
  2   dbms_session.modify_package_state(dbms_session.FREE_ALL_RESOURCES);
  3  end;
  4  /

Процедура PL/SQL успешно завершена.

SQL>
SQL> select * from test2313;

         X
----------
         1

SQL>
SQL> truncate table test2313;

Таблица усечена.

SQL> drop table test2313;

Таблица удалена.



Нет гарантии, что данные gtt сохранятся для вашей апексной сессии при следующем запросе, или не окажутся вдруг в другой апексной сессии.

Как вариант, создайте свою табличку со столбцом apex_session_id.
Ну или в начале каждого запроса заполняйте заново gtt, тип gtt как раз лучше поменять на on commit delete rows.
...
Рейтинг: 0 / 0
21.09.2014, 15:10
    #38752920
suPPLer
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Проблема с использованием GLOBAL TEMPORARY TEBLE в PLSQL блоках
SvDev+ GTT, ввиду архитектуры, придётся заполнять каждый раз перед отрисовкой страницы.И перед заполнением удалять из неё данные, что нивелирует все плюсы сессионной GTT.

Учитывая, что IR при любых изменениях или обновлении подтягивает данные через XmlHttpRequest, который в общем случае будет обрабатываться случайным процессом из пула, использовать временные таблицы нет смысла.

Я только поправлю уважаемого коллегу с предложением использовать API для коллекций:
SvDevAPEX_COLLECTION.CREATE_COLLECTION_FROM_QUERY _B Этот вариант использует пакетную вставку для заполнения коллекции вместо построчной, так что должен выполниться быстрее.

Напомню, что кроме строковых полей в коллекциях есть числовые поля, даты, BLOB, CLOB и XML. Поэтому можно использовать APEX_COLLECTION.CREATE_COLLECTION_FROM_QUERYB2 для заполнения, а затем пользоваться значениями в полях без приведения типов.
...
Рейтинг: 0 / 0
22.09.2014, 17:58
    #38753819
maxandsoft
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Проблема с использованием GLOBAL TEMPORARY TEBLE в PLSQL блоках
suPPLer,

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


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