Как использовать APEX_UTIL.PREPARE_URL для URL, который содержит обратную косую черту? - PullRequest
0 голосов
/ 02 октября 2019

Я пытаюсь использовать APEX_UTIL.PREPARE_URL для создания URL-адреса APEX для страницы, для которой требуется контрольная сумма, и я пытаюсь установить для элемента страницы на странице назначения значение, которое содержитспециальные символы. Предположим для этого вопроса, что единственные специальные символы, которые я передаю, - это запятые, хотя моя проблема, похоже, относится ко всем специальным символам.

Согласно документации APEX URL , значение элементакоторый содержит запятую, должен быть заключен в обратную косую черту. Поэтому, когда я создаю свой URL, я получаю что-то вроде этого:

f?p=112:50:session::::P50_PAGE_ITEM:\123,abc\:

Затем я пропускаю этот URL через APEX_UTIL.PREPARE_URL:

APEX_UTIL.PREPARE_URL('f?p=112:50:session::::P50_PAGE_ITEM:\123,abc\:')

Когда я пытаюсь перейти по ссылкепри возврате я получаю следующую ошибку:

Контрольная сумма, вычисленная по запросу, очистить кэш, имена аргументов и значения аргументов (...) не соответствует контрольной сумме, переданной в процедуру show.

Если я пытаюсь передать значение, не содержащее запятых, и удаляю обратную косую черту, значение передается без проблем.

Как получить действительную контрольную сумму для URL-адресакоторый содержит обратную косую черту, чтобы я мог передавать значения, содержащие запятые (и другие специальные символы)?

1 Ответ

0 голосов
/ 02 октября 2019

APEX_UTIL.PREPARE_URL должен нормально обрабатывать обратную косую черту. В области, содержащей результирующий URL-адрес, могут отсутствовать специальные символы, что приводит к несоответствию контрольной суммы.

Чтобы проверить фактический вывод APEX_UTIL.PREPARE_URL, попробуйте вывести свой URL-адрес в динамическую область PL / SQL. Например:

DECLARE
  l_url VARCHAR2(200) := 'f?p=112:50:session::::P50_PAGE_ITEM:\123,abc\:';
BEGIN
  htp.p('<a href="'||apex_util.prepare_url(l_url)||'">page 52</a>');
END;
...