Как работает подстановка переменных привязки для элементов страницы в ORACLE APEX

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

my_pkg.proc1(P1 =>:P2_ITEM1);

Здесь, как механизм APEX определяет, ожидает ли параметр P1 для proc1 число, переменную varchar2 или дату.

Расширить:

У меня есть сетка. С запросом, как показано ниже

Select * from table(my_pkg.pipe_func(:P2_PARAM1,:P2_PARAM2));

Когда пользователь нажимает кнопку, мне нужно получить текущее значение состояния сеанса этих подстановок привязки, и я хочу сохранить указанный выше запрос выбора в таблице как

Select * from table(my_pkg.pipe_func('ParamVal',256));

Как этого добиться?

1 ответ

База данных Oracle выполняет эту чертову работу точно так же, как она делала это годами. Вы можете увидеть это вv$sqlarea.

И вам следует явно преобразовать эти связываемые переменные, поскольку они по сути будут обрабатываться как varchar - так же, как они хранятся.

where id = to_number(:p1_id)

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

Другие вопросы по тегам