2.5 IS_ROLE_REMOVED_FROM_USERファンクション

このファンクションは、ロールがユーザーから削除されているかどうかを確認します。ユーザーの新しいロールIDのリストから特定のロールが削除されている場合、このファンクションはTRUEを返します。

構文

APEX_ACL.IS_ROLE_REMOVED_FROM_USER (
    p_application_id    IN NUMBER       DEFAULT apex_application.g_flow_id,
    p_user_name         IN VARCHAR2,
    p_role_static_id    IN VARCHAR2,
    p_role_ids          IN apex_t_number )
    RETURN BOOLEAN;

パラメータ

表2-5 IS_ROLE_REMOVED_FROM_USERのパラメータ

パラメータ 説明
p_application_id ユーザーのロール・リストから特定のロールが削除されているかどうかを確認するためのアプリケーションID。デフォルトは、現在のアプリケーションです。
p_user_name 確認するアプリケーション・ユーザーの大/小文字を区別しない名前。
p_role_static_id 削除されているかどうかを確認するロールの静的IDの名前(大/小文字の区別なし)。
p_role_ids ユーザーに割り当てられているNUMBER型の新しいロールIDの配列。

次の例では、IS_ROLE_REMOVED_FROM_USERファンクションを使用して、ADMINISTRATORのロール静的IDが、アプリケーション255のユーザー名SCOTTの新しいロールID 2505704029884282および345029884282から削除されているかどうかを確認します。

DECLARE
    is_role_removed boolean := false;
BEGIN
    is_role_removed := apex_acl.is_role_removed_from_user (
                         p_application_id => 255,
                         p_user_name => 'SCOTT',
                         p_role_static_id => 'ADMINISTRATOR',
                         p_role_ids => apex_t_number( 2505704029884282, 345029884282 ) );

    IF NOT is_role_removed THEN
        raise_application_error(-20001, 'ADMINISTRATOR role is not removed from SCOTT.' );
    END IF;
END;