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


Проблема в следующем созданы таблицы с типом по коммиту ON COMMIT PRESERVE ROWS , чтобы записи после коммита оставались.
В таблице имеется поле с именем пользователя чтобы данные были видны только ему. Перед каждым заполнением временной таблицы делаю DELETE данных для текущего пользователя, но почему то IRR (интерактивный отчет) при обращении не отображает данные, но если сделать тупой REFRESH (по кнопке F5) данные появляются, в чем может быть проблема?
...
Рейтинг: 0 / 0
Проблема с использованием GLOBAL TEMPORARY TEBLE в PLSQL блоках
    #38751570
Фотография maxandsoft
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
SuPPler Вы же точно знаете как решить проблему, подскажите
...
Рейтинг: 0 / 0
Проблема с использованием GLOBAL TEMPORARY TEBLE в PLSQL блоках
    #38751573
Фотография maxandsoft
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Пожалуйста :-)
...
Рейтинг: 0 / 0
Проблема с использованием GLOBAL TEMPORARY TEBLE в PLSQL блоках
    #38751579
Фотография maxandsoft
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Еще уточнение заполнение таблиц делаю в процессе AfterHeader
...
Рейтинг: 0 / 0
Проблема с использованием GLOBAL TEMPORARY TEBLE в PLSQL блоках
    #38751662
Al_vrn
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
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
Проблема с использованием GLOBAL TEMPORARY TEBLE в PLSQL блоках
    #38751706
SvDev
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Al_vrn,

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

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

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

(((((((
...
Рейтинг: 0 / 0
Проблема с использованием GLOBAL TEMPORARY TEBLE в PLSQL блоках
    #38751910
Фотография maxandsoft
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
maxandsoft, но опять же отражается правильно в JQTREE стандартном компоненте APEX а с IRR глюки шмуки (((((
...
Рейтинг: 0 / 0
Проблема с использованием GLOBAL TEMPORARY TEBLE в PLSQL блоках
    #38751947
SvDev
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
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
Проблема с использованием GLOBAL TEMPORARY TEBLE в PLSQL блоках
    #38752920
Фотография suPPLer
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
SvDev+ GTT, ввиду архитектуры, придётся заполнять каждый раз перед отрисовкой страницы.И перед заполнением удалять из неё данные, что нивелирует все плюсы сессионной GTT.

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

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

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

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


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