Oracle APEX: настройка элемента страницы «Display Image» через PL SQL - PullRequest
0 голосов
/ 07 мая 2020

У меня есть таблица IMAGE_TABLE с двумя столбцами ID - NUMBER и IMAGE - BLOB. У меня есть страница APEX с элементом страницы P1_ID как скрытым и P1_IMAGE с типом "Diaplay Image" и «На основе» как «Столбец BLOB, возвращенный SQL Statement».

SQL is следующим образом: SELECT IMAGE FROM IMAGE_TABLE WHERE ID = :P1_ID;

При загрузке страницы я установил P1_ID равным 1.

У меня есть две кнопки: «Назад» и «Далее». Когда нажата кнопка «Далее», я хочу получить следующее изображение с динамическим c действием с истинным действием как «Выполнить PL / SQL код» и кодом следующим образом:

:P1_ID := :P1_ID + 1; ( :P1_ID := :P1_ID - 1; for PREV button )
SELECT IMAGE INTO :P1_IMAGE FROM IMAGE_TABLE WHERE ID = :P1_ID;

Элементы для отправки : :P1_ID

Элементы для возврата: :P1_ID, :P1_IMAGE

Когда я сохраняю этот код PL / SQL, я получаю сообщение об ошибке "ORA-06550: line 23, column 8: PL/SQL: ORA-00932: inconsistent datatypes: expected NUMBER got BLOB".

Идея состоит в том, что я не хочу отправлять страницу снова при нажатии кнопки «следующий» или «предыдущий», а выполняю обновление региона sh (как второе истинное действие для этого действия c динамического изменения) для загрузки нового изображения.

Есть какие-нибудь подсказки, в чем моя ошибка и как этого добиться?

Моя версия APEX - «18.1», а Oracle версия - «11g Express Edition Release 11.2.0.2.0 - 64bit Производство »

Заранее спасибо.

1 Ответ

0 голосов
/ 07 мая 2020

Все, что вам нужно сделать, это

  1. refre sh регион с динамическим c действием
  2. убедиться, что новый P1_ID установлен в 'элементы страницы для отправки 'для области, в которой отображается изображение

Вам не нужен элемент страницы P1_IMAGE для хранения большого двоичного объекта изображения - вот откуда возникает ошибка.

...