26.20 LDAP_SEARCH_FILTERファンクション
LDAP_SEARCH_FILTER
ファンクションは、RFC 4515に従って、LDAP検索フィルタの予約文字をエスケープします。RFCでは、*()\/は予約文字であると説明されています(p_reserved_chars
を参照)。これらの印字できない文字(ASCII 0 - 31)およびコード127を超える文字(p_escape_non_ascii
を参照)は、\xx
(xx
は16進文字コード)としてエスケープされます。
構文
APEX_ESCAPE.LDAP_SEARCH_FILTER (
p_string IN VARCHAR2,
p_reserved_chars IN VARCHAR2 DEFAULT c_ldap_search_reserved_chars,
p_escape_non_ascii IN BOOLEAN DEFAULT TRUE )
RETURN VARCHAR2;
パラメータ
パラメータ | 説明 |
---|---|
p_string |
エスケープされるテキスト文字列。 |
p_reserved_chars |
p_string に含まれる場合に、\xx でエスケープされる文字のリスト(\xx は、文字のASCIIの16進コードを表します)。
|
p_escape_non_ascii |
TRUEの場合、p_string でASCII 127を超える文字は\xx でエスケープされます(xx は、その文字のASCIIの16進コードを表します)。これはRFC 4514でサポートされますが、古いLDAPサーバーおよびMicrosoft ADでは、エラーが発生することがあります。
|
例
この例では、l_name
のテキストをエスケープし、結果をl_escaped
に移動します。
DECLARE
l_name varchar2(4000) := 'Joe*User';
l_escaped varchar2(4000);
BEGIN
l_escaped := apex_escape.ldap_search_filter(l_name);
htp.p(l_name||' becomes '||l_escaped);
END;
ノート:
親トピック: APEX_ESCAPE