SEARCH
ファンクションは、LDAPリポジトリを検索します。結果は、表問合せで使用できるオブジェクト表の(dn, name, val)です。
構文
function search ( p_username IN VARCHAR2 DEFAULT NULL, p_pass IN VARCHAR2 DEFAULT NULL, p_auth_base IN VARCHAR2 DEFAULT NULL, p_host IN VARCHAR2, p_port IN NUMBER DEFAULT 389, p_use_ssl IN VARCHAR2 DEFAULT 'N', p_search_base IN VARCHAR2, p_search_filter IN VARCHAR2, p_scope IN BINARY_INTEGER DEFAULT SYS.DBMS_LDAP.SCOPE_SUBTREE, p_timeout_sec IN BINARY_INTEGER DEFAULT 3, p_attribute_names IN VARCHAR2 ) RETURN APEX_T_LDAP_ATTRIBUTES PIPELINED;
パラメータ
表17-7 SEARCHのパラメータ
パラメータ | 説明 |
---|---|
|
ユーザーのログイン名(匿名バインドの場合は |
|
|
|
|
|
LDAPサーバー・ホスト名。 |
|
LDAPサーバーのポート番号。 |
|
LDAPサーバーへのバインドでSSLを使用する場合は'Y'を設定します。一方向認証(Oracleウォレットで構成されるLDAPサーバー証明書が必要)でSSLを使用する場合は'A'を設定します。SSLを使用しない場合は'N'を設定します(デフォルト)。 |
|
検索用のdnベース。 |
|
LDAP検索フィルタ式。 |
|
検索範囲(デフォルトはサブツリーに下降)。 |
|
検索のタイムアウト(デフォルトは3秒) |
|
戻り属性名のカンマ区切りのリスト |
例1
SELECT val group_dns FROM table(apex_ldap.search ( p_host => 'ldap.example.com', p_search_base => 'dc=example,dc=com', p_search_filter => 'uid='||apex_escape.ldap_search_filter(:APP_USER), p_attribute_names => 'memberof' ));
例2
SELECT dn, mail, dispname, phone from ( select dn, name, val from table(apex_ldap.search ( p_host => 'ldap.example.com', p_search_base => 'dc=example,dc=com', p_search_filter => '&(objectClass=person)(ou=Test)', p_attribute_names => 'mail,displayname,telephonenumber' ))) pivot (min(val) for name in ( 'mail' mail, 'displayname' dispname, 'telephonenumber' phone ))