13.8 LDAP_DNファンクション

LDAP_DNファンクションは、RFC 4514に従って、LDAP識別名の予約文字をエスケープします。RFCでは、"+,;<=>\は予約文字であると説明されています(p_reserved_charsを参照)。これらは、バックスラッシュによってエスケープされます(「becomes \」など)。印字できない文字ASCII 0 - 31およびコード> 127を持つ文字(p_escape_non_asciiを参照)は、\xx(xxは16進文字コード)としてエスケープされます。文字列の先頭または末尾のスペース文字および先頭の#も、バックスラッシュでエスケープされます。

構文

APEX_ESCAPE.LDAP_DN (
    p_string IN VARCHAR2,
    p_reserved_chars IN VARCHAR2 DEFAULT c_ldap_dn_reserved_chars,
    p_escaped_non_ascii IN BOOLEAN DEFAULT TRUE )
    return VARCHAR2;

パラメータ

表13-9 LDAP_DNファンクションのパラメータ

パラメータ 説明

p_string

エスケープされるテキスト文字列。

p_reserved_chars

p_stringに含まれる場合に、バックスラッシュでエスケープされる文字のリスト。

p_escaped_non_ascii

TRUEの場合、p_stringでASCII 127を超える文字はバックスラッシュでエスケープされます。これはRFC 4514およびRFC 2253でサポートされますが、古いLDAPサーバーおよびMicrosoft ADでは、エラーが発生することがあります。

この例では、l_nameの文字をエスケープし、結果をl_escapedに移動します。

declare 
    l_name varchar2(4000) := 'Joe+User'; 
    l_escaped varchar2(4000); 
begin 
    l_escaped := apex_escape.ldap_dn(l_name); 
    htp.p(l_name||' becomes '||l_escaped); 
end;