Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / Oracle APEX [игнор отключен] [закрыт для гостей] / Странное поведение plsql кода в dynamic action / 2 сообщений из 2, страница 1 из 1
30.10.2013, 07:34
    #38446076
Vladimir Vlasov
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Странное поведение plsql кода в dynamic action
Доброго времени суток.

Столкнулся с такой ситуацией. Есть код на pl sql, вставленный в dinamic action
Код: plsql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
DECLARE
AGENT  VARCHAR2(20);
DILER  VARCHAR2(20);
WHIE  VARCHAR2(20);

BEGIN

SELECT OPERATOR, NOTE, AGENT_ID, DILER_ID, WHIE, B_DATE, UNIN 
INTO  :P1_OPERATOR, :P1_NOTE, AGENT, DILER, WHIE, :P1_B_DATE, :P1_UNIN
FROM TABLE WHERE ID = :P1_SELECTED_ID;

SELECT DISTINCT NAME INTO :P1_AGENT_NAME FROM AGENT WHERE ID=AGENT;
SELECT DISTINCT FIO INTO :P1_DILER_NAME FROM DILLER WHERE  ID=DILER;
SELECT DISTINCT NAME INTO :P1_WHIE_NAME FROM WHIE  WHERE  ID=WHIE; 

EXCEPTION
    WHEN OTHERS THEN
      NULL;

END;



Код выполняется, когда выбирается некоторый ID из запроса.
Как я вижу работу кода - по значению айтема P1_SELECTED_ID происходит поиск из таблицы TABLE, значения OPERATOR, NOTE, B_DATE, UNIN сразу же записываются в айтемы :P1_OPERATOR, :P1_NOTE, :P1_B_DATE, :P1_UNIN.
Значения AGENT_ID, DILER_ID, WHIE записываются в объявленные ранее переменные AGENT, DILER, WHIE.
Далее идут три селекта, по которым в айтемы :P1_AGENT_NAME, :P1_DILER_NAME, :P1_WHIE_NAME должны также записаться выбранные из таблицы значения.
Странность в том, что первые два селекта
Код: plsql
1.
2.
SELECT DISTINCT NAME INTO :P1_AGENT_NAME FROM AGENT WHERE ID=AGENT;
SELECT DISTINCT FIO INTO :P1_DILER_NAME FROM DILLER WHERE  ID=DILER;


отрабатывают нормально. А последний
Код: plsql
1.
SELECT DISTINCT NAME INTO :P1_WHIE_NAME FROM WHIE  WHERE  ID=WHIE;

отказывается записывать в айтем значение.
Проверял весь код вручную - селектятся данные нормально.
Проблема решилась, когда я разбил это действие на два True Actions. В первом оставил селекты AGENT и DILLER, во втором- WHIE. Запись в айтемы проходит нормально.
Но я не могу понять, почему эти действия не могут нормально сработать в одном True Action.

Может кто-нибудь сталкивался с подобным?
...
Рейтинг: 0 / 0
31.10.2013, 13:15
    #38448232
Vladimir Vlasov
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Странное поведение plsql кода в dynamic action
Vladimir Vlasov,

UPD Уточняющая информация появилась.

В конец кода (до обработчика исключений) я вставил такой код
Код: plsql
1.
:APPLICATION_ITEM_1:=P1_SELECTED_ID;


Переменная приложения не изменяется.
Вставил ещё один, третий True Action с кодом
Код: plsql
1.
2.
3.
BEGIN
:APPLICATION_ITEM_1:=P1_SELECTED_ID;
END;

- работает.
Есть какие-нибудь ограничения на количество значений, которые могут возвращаться из одного True Action? Если нет, то я в замешательстве.
...
Рейтинг: 0 / 0
Форумы / Oracle APEX [игнор отключен] [закрыт для гостей] / Странное поведение plsql кода в dynamic action / 2 сообщений из 2, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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