невозможно предотвратить замену ‹ › в вершине оракула

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

Я использую оператор декодирования в интерактивном отчете oracle apex. Идея состоит в том, что если значение равно null, отобразить тире, а если нет, отобразить изображение галочки.

В моем SQL-запросе для отчета у меня есть:

select "col1",
"col2",
decode (col3, NULL, '-', '<img src="#APP_IMAGES#check.png" alt="check mark" />') "col3"
from "#OWNER#"."table"

В отчете я вижу все столбцы и там, где col3 равен нулю, я получаю прочерк, а где не ноль, он печатает

<img src="path/to/check.png" alt="check mark" />

Глядя на html, он на самом деле печатает < > вместо ‹>.

Должно быть легко исправить эти символы, но я не могу понять, как избежать символов ‹ и >.

Интересно, что сайт, на котором я почерпнул эту идею, не имеет проблем с этими символами: http://www.ruleworks.co.uk/apex/howto-decode-doc.asp


person zee    schedule 18.01.2017    source источник
comment
В атрибутах столбца col3 есть ли специальные символы Escape=NO?   -  person Cristian_I    schedule 20.01.2017


Ответы (1)


Добрался до атрибутов col3. В APEX 5 вы найдете опцию «Экран специальных символов». Переключите его на «нет», и вы увидите свой HTML.

Однако будьте осторожны с этим параметром, так как вы можете легко внедрить XSS (межсайтовый скриптинг). В вашем случае вы этого не сделаете, потому что вы не используете предоставленные пользователем данные как часть col3, но это полезно знать.

Лучший подход — попытаться использовать поле «HTML-выражение» (также атрибут столбца). Тогда col3 может вернуть изображение, а HTML-выражение будет таким:

select ...
     , decode (col3, NULL, 'blank.gif','check.png') col3_flag
       ...

HTML-выражение:

<img src="#APP_IMAGES##COL3_FLAG#"/>
person Jorge Rimblas    schedule 21.01.2017