18.2 HTMLファンクション
このファンクションは、HTML環境でコンテキストが変更される可能性のある文字をエスケープします。これは、既知のsys.htf.escape_scの拡張バージョンです。 
                  
ファンクションの結果は、apex_escape.set_html_escaping_modeを使用して定義されるエスケープ・モードによって異なります。デフォルトのエスケープ・モードはExtendedですが、これは、手動でset_html_escaping_modeをコールするか、アプリケーションのセキュリティ属性HTML Escaping ModeをBasicに設定することで上書きできます。モードがBasicの場合、ファンクションはsys.htf.escape_scと同様に動作します。そうでない場合は、次のルールが適用されます。 
                  
表18-1に、このファンクションによって変換されるASCII文字と、それらの文字がエスケープされた値を示します。
表18-1 変換されるASCII文字がエスケープされた値
| 実際のASCI文字 | 戻されるエスケープされた文字 | 
|---|---|
| 
 | 
 | 
| 
 | 
 | 
| 
 | 
 | 
| 
 | 
 | 
| ' | 
 | 
| 
 | 
 | 
構文
APEX_ESCAPE.HTML (
    p_string IN VARCHAR2 )
    return VARCHAR2;パラメータ
表18-2 HTMLファンクションのパラメータ
| パラメータ | 説明 | 
|---|---|
| 
 | エスケープされる文字列のテキスト | 
例
この例では、基本(B)モードおよび拡張(E)モードでエスケープをテストします。
                  
DECLARE 
procedure eq(p_str1 in varchar2,p_str2 in varchar2) 
    is 
    BEGIN 
        IF p_str1||'.' <> p_str2||'.' THEN 
            raise_application_error(-20001,p_str1||' <> '||p_str2); 
    END IF; 
END eq; 
BEGIN 
    apex_escape.set_html_escaping_mode('B'); 
    eq(apex_escape.html('hello &"<>''/'), 'hello &"<>''/'); 
    apex_escape.set_html_escaping_mode('E'); 
    eq(apex_escape.html('hello &"<>''/'), 'hello
    &"<>'/'); 
END; 親トピック: APEX_ESCAPE