powered by simpleCommunicator - 2.0.51     © 2025 Programmizd 02
Форумы / Oracle APEX [игнор отключен] [закрыт для гостей] / APEX - переменные пакета
9 сообщений из 9, страница 1 из 1
APEX - переменные пакета
    #34219613
Mr_Frost
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Еще накопал странность в apex'e:
На странице 2 региона.
В верхнем поле ввода и кнопка, по которой вызывается процедура пакета, присваивающая переменной этого пакета значение, введенное в поле.
В нижнем регионе запрос из dual, возвращающий переменную этого пакета.
Так вот запрос возвращает null, хотя процедура по кнопке отрабатывает и число в пакет передается.
В чем подвох? Образец пакета прилагаю.

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
create table TEST_VAR (VAR_VALUE NUMBER)
/
create or replace package test_variables is
 nNUM NUMBER;
 PROCEDURE SET_VARIABLE (N NUMBER);
 FUNCTION GET_VARIABLE RETURN NUMBER;
end test_variables;
/
create or replace package body test_variables is
 PROCEDURE SET_VARIABLE (N NUMBER) IS
 BEGIN
 nNUM := N;
 insert into test_var (var_value)
  values (nNUM);
 commit;
 END SET_VARIABLE;
 FUNCTION GET_VARIABLE RETURN NUMBER IS
 BEGIN
  RETURN nNUM;
 END GET_VARIABLE;
end test_variables;
/

Вот запрос:
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
select to_char (sysdate, 'dd.mm.yyyy hh24.mi.ss') || '; var_value = ' ||
to_char (test_variables.get_variable) var_value 
from dual
union all
select to_char (sysdate, 'dd.mm.yyyy hh24.mi.ss') || '; var_value = ' ||
to_char (var_value) var_value 
from test_var
...
Рейтинг: 0 / 0
APEX - переменные пакета
    #34219765
По моему скромному разумению, в новой сессии (по обновлению страницы) в переменной пакета уже будет null.
...
Рейтинг: 0 / 0
APEX - переменные пакета
    #34220084
Mr_Frost
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
А почему в новой, если я в Session Monitor'e вижу, что сессия та же?
...
Рейтинг: 0 / 0
APEX - переменные пакета
    #34220250
Фотография Elic
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Mr_FrostА почему в новой, если я в Session Monitor'e вижу, что сессия та же?А это не важно, та же сессия или не та. В stateless режим е (а кокой ещё в web-е?) перед обработкой каждого запроса выполняется dbms_session.reset_package
...
Рейтинг: 0 / 0
APEX - переменные пакета
    #34220591
Mr_Frost
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Elicперед обработкой каждого запроса выполняется dbms_session.reset_package
А как быть? Есть view, которое ограничено переменными пакета.
Переписывать его на подзапрос из таблицы и заполнять эту таблицу вместо переменных?
...
Рейтинг: 0 / 0
APEX - переменные пакета
    #34220964
mutate
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
используй shared компонетны - там можно глобальные переменные заводить.
...
Рейтинг: 0 / 0
APEX - переменные пакета
    #34221032
Mr_Frost
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
а подробней? не нашел такого в shared components
...
Рейтинг: 0 / 0
APEX - переменные пакета
    #34221762
Alex from SPb
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Working with Shared Components

Application Items
Application-level items do not display, but are used as global variables to the application. Commonly, you set the value of a page-level item using an application or page computations. See "Understanding Application-Level Items".

Application Processes
Use application processes to run PL/SQL logic:

At specific points for each page in an application
As defined by the conditions under which the process is set to execute
Upon the creation of a new session

Note that On Demand processes execute only when called from a page-level On Demand process. See "Understanding Application Processes".

Application Computations
Use application-level computations to assign values to application and page-level items for each page displayed or upon the creation of a new application session. You can also create an application-level computation and execute it conditionally on multiple pages. See "Understanding Application Computations".
...
Рейтинг: 0 / 0
APEX - переменные пакета
    #34221783
Mr_Frost
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Прочитал, и все равно не понял, как мне это поможет, если
Elicперед обработкой каждого запроса выполняется dbms_session.reset_package
?
...
Рейтинг: 0 / 0
9 сообщений из 9, страница 1 из 1
Форумы / Oracle APEX [игнор отключен] [закрыт для гостей] / APEX - переменные пакета
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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