Consultas Útiles en Oracle APEX

Consultas Útiles en Oracle APEX

Buenas, en esta ocasión quiero mostrarles algunas consultas que encuentro bastante útiles a la hora de utilizar Oracle APEX que debemos tener siempre en cuenta tanto para Administradores de Base de Datos como Desarrolladores.

Veamos cuales son.

Obtener la versión del APEX y el ORDS

//APEX
select version_no from apex_release;

//ORDS
select ords.installed_version from dual;

Verificar estado de usuarios de APEX y ORDS:

(Requiere usuario SYS)

select username usuario, account_status estado, LOCK_DATE fecha_de_bloqueo, EXPIRY_DATE fecha_de_expiracion, PROFILE
from dba_users
where username in ('ANONYMOUS','PDBADMIN','SYS','XDB')
or username like 'APEX%' 
or username like 'ORDS%'
order by username;

Verificar usuarios bloqueados de APEX:

(Requiere usuario SYS)

Aquí deben tener en cuenta la versión del APEX, por ejemplo:

Para la versión 20.2 aplica APEX_200200.

Para la versión 21.2 aplica APEX_210200.

Para la versión 22.2 aplica APEX_220200 y así sucesivamente.

SELECT * FROM APEX_220200.WWV_FLOW_FND_USER A WHERE ACCOUNT_LOCKED = 'Y';

Desbloquear y cambiar contraseña de usuarios de APEX:

(Requiere usuario SYS) Con esto podemos tener una idea de como volver a habilitar usuarios bloqueados por A o B motivo, así como tambien cambiar las contraseñas tanto del usuario ADMIN como de cualquier otro.

update APEX_220200.WWV_FLOW_FND_USER 
set ACCOUNT_LOCKED = 'N', WEB_PASSWORD = 'NuevoPass123'
where user_name = 'ADMIN';
commit;

Desbloquear y bloquear usuarios de APEX con el paquete APEX_UTIL

--Bloquear usuario
begin
    APEX_UTIL.LOCK_ACCOUNT (p_user_name IN VARCHAR2 );
end; 

--Desbloquear usuario
begin
    APEX_UTIL.UNLOCK_ACCOUNT (p_user_name IN VARCHAR2 );
end; 

--Obtener estado de los usuarios
BEGIN
    FOR c1 IN (SELECT user_name FROM apex_users) loop
        IF APEX_UTIL.GET_ACCOUNT_LOCKED_STATUS(p_user_name => c1.user_name) THEN
            HTP.P('Cuenta de Usuario:'||c1.user_name||' bloqueada.'); 
        END IF;   
    END LOOP;
END;

Ver Usuarios Conectados

select distinct ss.username,
REGEXP_SUBSTR(client_identifier, '[^:]+') user_apex,
ss.MACHINE,
ss.OSUSER,
ss.TERMINAL, 
ss.PROGRAM,
ss.MODULE,
ss.LOGON_TIME,
ss.SERVICE_NAME
from v$session ss
where ss.TYPE = 'USER';