Невозможно обновить поля, используя анонимный блок в Oracle Apex - PullRequest
0 голосов
/ 12 июня 2019

У меня есть 2 страницы в моем приложении Apex и страница 1 и страница 2.

В Page1 - у меня есть 2 поля, которые я просто сохраняю, чтобы я мог использовать их в Page2 для полной вставки в таблицу, причем первичный ключ - последовательность, которую я создал.

На странице 2: первичный ключ скрыт (последовательность),

У меня есть кнопка «Сохранить», на которой я написал анонимный блок (динамическое действие -> Выполнить код PLSQL) для вставки в таблицу с подробностями как на странице 1, так и на странице 2, что прошло успешно и с этим проблем нет.

Но проблема с кнопкой Обновить.

Я снова использую анонимный блок (динамическое действие -> Выполнить код PLSQL), чтобы обновить детали на странице2. Но записи не обновляются в базе данных.

Я использую условие соединения

Id =: P6_PRIMARY_KEY (: P6_PRIMARY_KEY - скрытое поле, а Id - поле базы данных с последовательностью)

Я думаю, что не могу получить Id в состоянии where.

Не уверен, что я что-то упустил.

Я выполнил вставку в базу данных, используя аналогичный анонимный блок, и все прошло хорошо и создает записи всякий раз, когда я нажимаю кнопку Сохранить.

И я делаю то же самое для кнопки «Обновить». Он также не обновляется без ошибок.

Мой первичный ключ - это последовательность. Думаю, как-то не сохранилось значение первичного ключа. Возможно, мне нужно что-то изменить в моем состоянии.

1 Ответ

1 голос
/ 12 июня 2019

Показать P6_PRIMARY_KEY, чтобы вы увидели, что там.Возможно, вы каждый раз выбираете новый порядковый номер, поэтому не удивительно, что соединение не работает.Если это так, настройте процесс, который делает это, применяя IF, например,

if :P6_PRIMARY_KEY is null then
   :P6_PRIMARY_KEY := seq_name.nextval;
end if;

или устанавливая условие для процесса, например, Элемент имеет значение null (чтоодин? P6_PRIMARY_KEY, конечно).

Также включите отладку, запустите страницу, выполните обновление, а затем просмотрите результаты отладки.Он покажет значения всех элементов, код, который был выполнен, поэтому он, вероятно, поможет найти виновника.

...