У меня есть таблица, содержащая данные в столбцах apex_page, apex_to_item, apex_with_values
, например:
apex_to_page: 6010
apex_to_item: P6010_XSRCS_ID,P6010_XSVER_ID
apex_with_values: XSRCS_ID,ID
Во время рендеринга страницы я хочу проанализировать эти значения (назначение URL, список элементов для установки, список значений из текущей страницы) и создайте URL-адреса на ее основе. Например: f?p=112:6010:4314006485638::NO::P6010_XSRCS_ID,P6010_XSVER_ID:100,200&cs=3LNhUQHJiAOOaiw3C_z3bHGtc4Us0LZV-D7ZMQhG0Z3EzCLeJpT8f--YA7SFOoD4xQD2C45qrv2PVxvwBY39qBA
Т.е. я хочу взять текущие значения XSRCS_ID, идентификаторы элементов текущей страницы (100,200) и вставить их в URL. Когда нужно передать только одно значение, у меня есть решение:
SELECT name label,
APEX_UTIL.PREPARE_URL(p_url => 'f?p=' || NV('APP_ID') || ':' || apex_page || ':' || NV('APP_SESSION') || '::NO::' || apex_to_items || ':' || NV('P' || :APP_PAGE_ID || '_' || apex_with_values), p_checksum_type => 'SESSION') apex_url
FROM ...
Когда нужно передать более одного элемента, я попробовал что-то вроде этого:
SELECT name label,
APEX_UTIL.PREPARE_URL(p_url => 'f?p=' || NV('APP_ID') || ':' || apex_page || ':' || NV('APP_SESSION') || '::NO::' || apex_to_items || ':' || regexp_replace(apex_with_values, '([^,]+)', NV('P' || :APP_PAGE_ID || '_\1')), p_checksum_type => 'SESSION') apex_url
...
FROM ...
и это не так не работает.
Есть ли способ извлечь значения из страницы и вставить его в URL?