Introduction:-

In Oracle APEX applications, enhancing user experience through personally is a key aspect of modern UI design. One effective way to achieve this is by dynamically setting the application logo based on the currently logged-in user. This approach allows us to display different logos for example, company-specific branding, department icons, or user-type indicators tailored to each user.

The following technologies has been used to achieve the same.

Oracle APEX
RESTful Service

Why We Need to Do This?

Personalized User Experience:-

Displaying a user-specific logo makes the application feel more tailored, improving user engagement and satisfaction.

Multi-Company or Multi-Department Branding:-

In applications used by different organizations or departments, showing their respective logos helps maintain brand identity and avoids confusion.

User Role Indication:-

The logo can visually represent user roles (e.g., Admin, HR, Finance), making it easier to identify the current context.

Professional Look and Feel:-

Dynamic branding adds a layer of professionalism, especially in client-facing apps where different users expect their own branding.

How Do We Solve This:-

Step1: Store the logo image in the user details table.

Step2: Create a Module from Restful service

Step3: Add a Template

Step4: Add a Handler

Step5: Paste the following PLSQL code

DECLARE
v_blob BLOB;
v_mime_type VARCHAR2(50);
v_length NUMBER;
v_user_id NUMBER;
BEGIN
v_user_id := TO_NUMBER(:USER_ID);
SELECT USER_LOGO, MIME_TYPE
INTO v_blob, v_mime_type
FROM USER_TABLE
WHERE USER_ID = v_user_id;
v_length := DBMS_LOB.GETLENGTH(v_blob);
IF v_length > 0 THEN
OWA_UTIL.MIME_HEADER(NVL(v_mime_type, 'image/png'), FALSE);
HTP.PRN('');
WPG_DOCLOAD.DOWNLOAD_FILE(v_blob);
ELSE
OWA_UTIL.STATUS_LINE(404, 'Not Found');
END IF;
END;

Step6: Now copy the Full URL from Resource Handler.

Step7: Create One Application Page Item with the name of P_USER_ID

Step8: Create One Application Process Process_Point – After Authentication (paste the following code)

BEGIN
SELECT USER_ID
INTO :P_USER_ID
FROM USER_TABLE
WHERE UPPER(USER_NAME) = UPPER(:APP_USER);
EXCEPTION
WHEN NO_DATA_FOUND THEN
:P_USER_ID := NULL;
WHEN TOO_MANY_ROWS THEN
:P_USER_ID := NULL;
WHEN OTHERS THEN
:P_USER_ID := NULL;
END;

Step9: Now go-to UI Interface under shared component and select logo

Logo Image
Image URL Paste Full URL and add application item
Sample_URL https://yourdomain/ords/dms/get/user_logo/&P_USER_ID.

Step10: Save and run the application.

Conclusion:-

Dynamically setting the APEX logo enhances supports multi-brand use, and delivers a cleaner, more professional user experience all within a single, unified application.

Output:-

User1:-

User2:-

Recent Posts

Start typing and press Enter to search