Skip to main content

Command Palette

Search for a command to run...

Consultas Útiles en Oracle APEX

Updated
2 min read
Consultas Útiles en Oracle APEX
O
Soy desarrollador de software y cuento con una trayectoria cargada de aprendizajes, las ganas de aprender cosas nuevas y lograr buenos resultados me han llevado a superar las expectativas y a alcanzar los objetivos propuestos. Me encanta la tecnología y disfruto inmensamente descubriendo innovaciones y compartiendo mis hallazgos con la comunidad.

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';

More from this blog

B

Blog en Español sobre Oracle APEX, ORDS y otras tecnologías.

20 posts