Wednesday, August 13, 2025

Oracle 21c Installation Guide on Windows

 


Oracle 21c Installation Guide on Windows




This guide walks you through installing Oracle Database 21c on Windows and configuring it for local use with SQL Developer.

๐Ÿ–ฅ️ Pre-Installation Requirements

Ensure your system meets the following:

  • OS: Windows Server 2019 or later (64-bit) or Windows 10/11 (64-bit)
  • RAM: Minimum 8 GB (16 GB recommended)
  • Disk Space: At least 50 GB free
  • CPU: Intel or AMD x86-64 processor
  • User Account: Administrator privileges

๐Ÿ”ง System Configuration

  • Disable UAC:
    Control Panel → User Accounts → Change User Account Control Settings → Never Notify
  • Firewall:
    Allow inbound TCP traffic on port 1521
  • Install Prerequisites:
  • .NET Framework 4.8 or later
  • Latest Windows updates

๐Ÿ“ฆ Step-by-Step Installation

Step 1: Download Oracle 21c

Step 2: Extract the Installer

  • Extract the ZIP to a directory like C:\Oracle21c
  • Open Command Prompt as Administrator
  • Navigate to the extracted folder

Step 3: Run Oracle Universal Installer

  • Run setup.exe
  • Follow the wizard:
    • Installation Type: Enterprise Edition (recommended)
    • Database Configuration: Create a database
    • Destination Folder: C:\app\oracle\product\21c\
    • Oracle Base: C:\app\oracle\product\21c\
    • Oracle Home: C:\app\oracle\product\21c\oradata
    • Admin Password: Choose a strong password
  • Verify prerequisites and click Install

๐Ÿ”Œ Step 4: Configure Listener

  • Launch Net Configuration Assistant (NETCA)
  • Choose Listener Configuration → Add
  • Set:
  • Listener Name: LISTENER
  • Protocol: TCP
  • Port: 1521

To start listener manually:

lsnrctl status lsnrctl start

Or update listener.ora:

ORCL = (DESCRIPTION = (ADDRESS = (PROTOCOL = TCP)(HOST = )(PORT = 1521)) (CONNECT_DATA = (SERVER = DEDICATED) (SERVICE_NAME = ORCL) ) )

๐Ÿ—ƒ️ Step 5: Create the Database

  • Launch Database Configuration Assistant (DBCA)
  • Choose Create a database
  • Select Advanced Configuration → General Purpose or Transaction Processing
  • Set:
  • Global Database Name: ORCL
  • SID: ORCL
  • Enable Automatic Memory Management
  • Enable Archiving (optional)

Click Finish to create the database.

๐Ÿง‘‍๐Ÿ’ป Step 6: Connect with SQL Developer

  • Username: system
  • Password: your admin password
  • Hostname: localhost
  • Port: 1521
  • SID: ORCL

๐Ÿ› ️ Troubleshooting Tips

  • If listener fails to start, check firewall and port settings
  • Use tnsping ORCL to verify connectivity
  • Ensure environment variables like ORACLE_HOME and PATH are correctly set

Monday, August 11, 2025

Oracle Database on Oracle Linux: Pre-requisite Setup Guide (Beginner Edition with Pre-install RPM 19c and 21c Edition)

Oracle Database on Oracle Linux: Pre-requisite Setup Guide (Beginner Edition with Pre-install RPM) 



This guide prepares a fresh Oracle Linux system for installing Oracle Database (19c or 21c), using the oracle-database-preinstall RPM to automate most of the setup.


1. Base OS Setup

OS Version: Oracle Linux 7 or 8 (64-bit), minimal install preferred



Update System

sudo yum update -y

sudo reboot


Enable Required Repos:

  • sudo yum install -y oraclelinux-release-el7

  • sudo yum-config-manager --enable ol7_latest ol7_optional ol7_addons

    ๐Ÿ“ฆ 2. Install Oracle Pre-install RPM

    Oracle provides a pre-install RPM that configures:

    • Required OS packages
    • Kernel parameters
    • Shell limits
    • Oracle user and groups

    For Oracle 19c on Oracle Linux 7:

    sudo yum install -y oracle-database-preinstall-19c

    For Oracle 21c on Oracle Linux 8:

    sudo dnf install -y oracle-database-preinstall-21c

    ๐Ÿ’ก This step automatically creates the oracle user, oinstall and dba groups, and sets kernel/shm parameters.

    ๐Ÿ“ 3. Create Oracle Base Directory

    Even though the RPM sets up the user, you still need to create the Oracle base manually:

    sudo mkdir -p /u01/app/oracle sudo chown -R oracle:oinstall /u01 sudo chmod -R 775 /u01

    ๐Ÿง  4. Verify Kernel Parameters and Limits

    The RPM sets values in /etc/sysctl.conf and /etc/security/limits.d/oracle-database-preinstall-19c.conf. You can verify with:

    sysctl -a | grep shm ulimit -a

    ๐Ÿ‘ค 5. Set Oracle Environment Variables

    Edit /home/oracle/.bash_profile:

    export ORACLE_BASE=/u01/app/oracle export ORACLE_HOME=$ORACLE_BASE/product/19.0.0/dbhome_1 export ORACLE_SID=ORCL export PATH=$ORACLE_HOME/bin:$PATH export LD_LIBRARY_PATH=$ORACLE_HOME/lib

    ๐Ÿงช Adjust paths if you're installing 21c or using a custom ORACLE_HOME.

    ๐Ÿงฉ 6. Optional: GUI Setup for Installer

    If using Oracle’s GUI installer:

    • Install X11 packages:
    • sudo yum install -y xorg-x11-utils xorg-x11-xauth

    • Enable SSH X11 forwarding:
    • ssh -X oracle@your-host

    • Or use VNC for remote GUI access

    ✅ Final Checklist Before Installation

    Item

    Minimum Requirement

    Swap Space

    2 GB or more

    Disk Space in /u01

    10–15 GB free

    Hostname

    Properly set and resolvable

    Oracle User

    Created by RPM

    Kernel & Limits

    Set by RPM



  • Thursday, July 17, 2025

    Common Oracle DBA Monitoring Commands for Beginners (Single Instance)

     






    This blog post provides a foundational set of Oracle DBA commands, primarily SQL queries, that are essential for monitoring a single instance Oracle database. These commands will help beginners understand the basic health, activity, and performance of their database.

    Note: Most of these commands are executed within SQL*Plus or SQL Developer, connected as a user with appropriate privileges (e.g., SYSDBA or SYSTEM).

    1. Instance Status and Basic Information

    These commands help you quickly ascertain the database's operational status and gather fundamental information.

    1.1 Check Database Instance Status

    This is the first command to check if your database instance is up and running.

    SELECT STATUS FROM V$INSTANCE;
    
    • Explanation: V$INSTANCE is a dynamic performance view that displays current instance status information. STATUS indicates whether the instance is OPEN, MOUNTED, or STARTED.

    • Expected Output: OPEN (most common for a running database), MOUNTED, STARTED, SHUTDOWN.

    1.2 Get Database Name and Instance Name

    Useful for verifying which database and instance you are connected to.

    SELECT NAME, INSTANCE_NAME FROM V$DATABASE, V$INSTANCE;
    
    • Explanation: V$DATABASE provides database-wide information, while V$INSTANCE gives instance-specific details.

    • Expected Output: Your database name and instance name.

    1.3 Check Database Open Mode

    Confirms if the database is open for read/write operations.

    SELECT OPEN_MODE FROM V$DATABASE;
    
    • Explanation: OPEN_MODE indicates the database's current open status (e.g., READ WRITE, READ ONLY).

    • Expected Output: READ WRITE (typical), READ ONLY.

    1.4 Show Current Database Version

    Important for knowing your database's capabilities and for troubleshooting.

    SELECT * FROM V$VERSION;
    
    • Explanation: V$VERSION displays the version banners of various Oracle components.

    • Expected Output: Oracle Database version (e.g., Oracle Database 19c Enterprise Edition Release 19.0.0.0.0 - Production).

    2. Session Monitoring

    Understanding who is connected and what they are doing is crucial for performance and security.

    2.1 List All Active Sessions

    Identifies currently connected users and their activities.

    SELECT SID, SERIAL#, USERNAME, PROGRAM, STATUS, MACHINE, OSUSER
    FROM V$SESSION
    WHERE USERNAME IS NOT NULL
    ORDER BY USERNAME, SID;
    
    • Explanation: V$SESSION provides information about active sessions.

      • SID: Session ID.

      • SERIAL#: Session serial number (used with SID to uniquely identify a session).

      • USERNAME: Database user connected.

      • PROGRAM: Application or program connecting to the database.

      • STATUS: Session status (e.g., ACTIVE, INACTIVE, SNIPED).

      • MACHINE: Client machine name.

      • OSUSER: Operating system user.

    • Expected Output: A list of all active and inactive user sessions.

    2.2 Find Sessions Waiting for Resources

    Identifies sessions that are currently experiencing waits, which can indicate performance bottlenecks.

    SELECT SID, SERIAL#, USERNAME, EVENT, WAIT_CLASS, SECONDS_IN_WAIT, STATE
    FROM V$SESSION
    WHERE STATUS = 'ACTIVE' AND WAIT_CLASS != 'Idle'
    ORDER BY SECONDS_IN_WAIT DESC;
    
    • Explanation: Filters V$SESSION for active sessions that are not idle and orders them by the duration of their current wait.

      • EVENT: The specific wait event the session is waiting on.

      • WAIT_CLASS: Category of the wait event (e.g., User I/O, Concurrency, Application).

      • SECONDS_IN_WAIT: How long the session has been waiting for the current event.

    • Expected Output: Sessions currently waiting, along with the wait event details.

    2.3 Find SQL Being Executed by a Session

    Helps pinpoint what a specific session is currently running.

    SELECT S.SID, S.SERIAL#, S.USERNAME, S.STATUS, S.MACHINE, S.PROGRAM,
           SQL.SQL_FULLTEXT
    FROM V$SESSION S, V$SQL SQL
    WHERE S.SQL_ID = SQL.SQL_ID
    AND S.STATUS = 'ACTIVE'
    AND S.USERNAME IS NOT NULL
    ORDER BY S.LAST_CALL_ET DESC; -- Order by elapsed time since last call for recent activity
    
    • Explanation: Joins V$SESSION with V$SQL (which contains SQL text) using SQL_ID.

    • Expected Output: Active sessions and the full text of the SQL statement they are executing.

    3. Storage Monitoring

    Monitoring storage ensures you don't run out of space and helps manage database growth.

    3.1 Check Tablespace Usage

    Crucial for monitoring free space within your database.

    SELECT
        DF.TABLESPACE_NAME,
        TOTAL_SPACE_MB,
        FREE_SPACE_MB,
        (TOTAL_SPACE_MB - FREE_SPACE_MB) AS USED_SPACE_MB,
        ROUND((TOTAL_SPACE_MB - FREE_SPACE_MB) / TOTAL_SPACE_MB * 100, 2) AS USED_PERCENTAGE
    FROM
        (SELECT TABLESPACE_NAME, ROUND(SUM(BYTES) / 1024 / 1024, 2) AS TOTAL_SPACE_MB
         FROM DBA_DATA_FILES
         GROUP BY TABLESPACE_NAME) DF,
        (SELECT TABLESPACE_NAME, ROUND(SUM(BYTES) / 1024 / 1024, 2) AS FREE_SPACE_MB
         FROM DBA_FREE_SPACE
         GROUP BY TABLESPACE_NAME) FS
    WHERE DF.TABLESPACE_NAME = FS.TABLESPACE_NAME (+)
    ORDER BY USED_PERCENTAGE DESC;
    
    • Explanation: Joins DBA_DATA_FILES (total space) with DBA_FREE_SPACE (free space) to calculate usage. DBA_DATA_FILES and DBA_FREE_SPACE are data dictionary views.

    • Expected Output: A list of tablespaces, their total size, free space, used space, and percentage used.

    3.2 List Datafiles and Their Sizes

    Provides a clear view of where your database files reside and their current sizes.

    SELECT FILE_NAME, TABLESPACE_NAME, BYTES / 1024 / 1024 AS SIZE_MB, AUTOEXTENSIBLE, MAXBYTES / 1024 / 1024 AS MAX_SIZE_MB
    FROM DBA_DATA_FILES
    ORDER BY TABLESPACE_NAME, FILE_NAME;
    
    • Explanation: DBA_DATA_FILES lists all datafiles, their associated tablespaces, and autoextend settings.

    • Expected Output: Datafile paths, tablespace names, current sizes, and autoextend details.

    3.3 Check Temp Tablespace Usage

    Monitors temporary segment usage, important for sorting and hash operations.

    SELECT
        A.TABLESPACE_NAME,
        A.TOTAL_TEMP_SPACE_MB,
        ROUND(SUM(B.BYTES_USED) / 1024 / 1024, 2) AS USED_TEMP_SPACE_MB,
        ROUND(SUM(B.BYTES_FREE) / 1024 / 1024, 2) AS FREE_TEMP_SPACE_MB,
        ROUND((SUM(B.BYTES_USED) / A.TOTAL_TEMP_SPACE_MB) * 100, 2) AS USED_PERCENTAGE
    FROM
        (SELECT TABLESPACE_NAME, ROUND(SUM(BYTES) / 1024 / 1024, 2) AS TOTAL_TEMP_SPACE_MB
         FROM DBA_TEMP_FILES
         GROUP BY TABLESPACE_NAME) A,
        V$TEMP_SPACE_HEADER B
    WHERE A.TABLESPACE_NAME = B.TABLESPACE_NAME (+)
    GROUP BY A.TABLESPACE_NAME, A.TOTAL_TEMP_SPACE_MB
    ORDER BY USED_PERCENTAGE DESC;
    
    • Explanation: Combines DBA_TEMP_FILES (total temp space) with V$TEMP_SPACE_HEADER (current usage).

    • Expected Output: Temp tablespace usage statistics.

    4. Performance Monitoring

    These commands give you insights into the database's performance metrics.

    4.1 Check SGA (System Global Area) Usage

    The SGA is a critical memory structure. Monitoring its usage helps understand memory allocation.

    SELECT NAME, ROUND(BYTES / 1024 / 1024, 2) AS SIZE_MB
    FROM V$SGASTAT
    ORDER BY SIZE_MB DESC;
    
    • Explanation: V$SGASTAT provides detailed information about the components of the SGA.

    • Expected Output: Sizes of different SGA components (e.g., Buffer Cache, Shared Pool, Log Buffer).

    4.2 Check PGA (Program Global Area) Usage

    PGA is memory allocated to individual processes. High PGA usage can indicate inefficient SQL or large sorts/hashes.

    SELECT NAME, VALUE / 1024 / 1024 AS SIZE_MB
    FROM V$PGASTAT
    WHERE NAME LIKE '%aggregate PGA target%' OR NAME LIKE '%total PGA allocated%';
    
    • Explanation: V$PGASTAT shows PGA memory usage statistics.

    • Expected Output: Aggregate PGA target and total PGA currently allocated.

    4.3 Monitor Redo Log Switches

    Frequent redo log switches can indicate high database activity and potential I/O bottlenecks.

    SELECT TO_CHAR(COMPLETION_TIME, 'YYYY-MM-DD HH24:MI:SS') AS SWITCH_TIME,
           SEQUENCE# AS REDO_SEQUENCE,
           ARCHIVED AS ARCHIVED_STATUS
    FROM V$ARCHIVED_LOG
    ORDER BY COMPLETION_TIME DESC
    FETCH FIRST 10 ROWS ONLY; -- Shows last 10 log switches
    
    • Explanation: V$ARCHIVED_LOG provides information about archived redo logs.

    • Expected Output: A list of recent redo log switches, their sequence numbers, and archive status.

    4.4 Check Buffer Cache Hit Ratio

    A high buffer cache hit ratio (ideally > 90%) indicates that most data blocks are found in memory, reducing physical I/O.

    SELECT
        (SUM(DECODE(NAME, 'consistent gets', VALUE, 0)) +
         SUM(DECODE(NAME, 'db block gets', VALUE, 0)) -
         SUM(DECODE(NAME, 'physical reads', VALUE, 0))) * 100 /
        (SUM(DECODE(NAME, 'consistent gets', VALUE, 0)) +
         SUM(DECODE(NAME, 'db block gets', VALUE, 0))) AS BUFFER_CACHE_HIT_RATIO
    FROM V$SYSSTAT
    WHERE NAME IN ('consistent gets', 'db block gets', 'physical reads');
    
    • Explanation: Calculates the hit ratio using system statistics from V$SYSSTAT.

    • Expected Output: A single value representing the buffer cache hit ratio.

    5. Alert Log Monitoring

    The alert log is the primary diagnostic file for an Oracle database. It records important messages and errors.

    5.1 Locate the Alert Log File

    You need to know where the alert log is located to view its contents.

    SHOW PARAMETER BACKGROUND_DUMP_DEST;
    
    • Explanation: BACKGROUND_DUMP_DEST is an initialization parameter that specifies the directory where background process trace files (including the alert log) are written.

    • Expected Output: The file path to the diagnostic destination. The alert log file itself will be named log.xml (for 11gR2 and later) or alert_<SID>.log (for older versions) within a subdirectory of this path (e.g., diag/rdbms/<dbname>/<instname>/trace/).

    Note: You typically view the alert log using operating system commands (e.g., tail -f alert_<SID>.log on Linux/Unix, or opening log.xml in a text editor/browser). There isn't a direct SQL command to read its content live.

    6. Other Useful Commands

    6.1 Show All Initialization Parameters

    Displays all current database initialization parameters and their values.

    SHOW PARAMETERS;
    
    • Explanation: A quick way to see the database configuration.

    • Expected Output: A long list of all parameters. You can filter this, e.g., SHOW PARAMETER DB_BLOCK_SIZE;.

    6.2 Check Current Date and Time

    Useful for verifying the database server's time.

    SELECT SYSDATE FROM DUAL;
    
    • Explanation: SYSDATE returns the current date and time. DUAL is a dummy table used for queries that don't need to retrieve data from a specific taable.

    • Expected Output: Current date and time.

    Conclusion

    This set of commands provides a solid starting point for any beginner Oracle DBA to monitor a single instance database. Regularly using these commands will help you understand your database's behavior, identify potential issues early, and gain confidence in managing Oracle environments. As you become more comfortable, you can explore more advanced V$ and DBA_ views for deeper insights.

    Monday, July 14, 2025

    Oracle DBA Commands Notebook: A Mini Survival Guide

     



    Whether you’re spinning up a RAC lab, auditing system usage, or simply trying to stay sharp as an Oracle DBA, this notebook packs a punch with essential SQL snippets for every skill level. Copy, paste, and conquer! ⚡

    ๐ŸŸข Beginner Commands — The Essentials

    ๐Ÿ” Check Oracle Database Version

    SELECT * FROM v$version;

    Great for confirming your environment—especially useful before patching or feature testing.

    ๐Ÿ‘ค List All Users

    SELECT username FROM dba_users ORDER BY username;

    Quick way to verify access or hunt for unused accounts.

    ๐Ÿ—ƒ️ Show Tablespaces

    SELECT tablespace_name, status FROM dba_tablespaces;

    Verify availability and health of your storage allocations.

    ๐ŸŸก Intermediate Commands — Digging Deeper

    ๐Ÿ“ Datafiles by Tablespace

    SELECT tablespace_name, file_name, bytes/1024/1024 AS MB FROM dba_data_files ORDER BY tablespace_name;

    See how your datafiles are distributed and consuming space.

    ๐Ÿ“Š Tablespace Usage Overview

    SELECT df.tablespace_name, df.total_mb, fs.free_mb, (df.total_mb - fs.free_mb) AS used_mb, ROUND((df.total_mb - fs.free_mb)/df.total_mb*100, 2) AS pct_used FROM (SELECT tablespace_name, SUM(bytes)/1024/1024 AS total_mb FROM dba_data_files GROUP BY tablespace_name) df JOIN (SELECT tablespace_name, SUM(bytes)/1024/1024 AS free_mb FROM dba_free_space GROUP BY tablespace_name) fs ON df.tablespace_name = fs.tablespace_name;

    

    Your go-to for capacity planning and alert thresholds.

    ๐Ÿง‘‍๐Ÿ’ป List Running Sessions

    SELECT sid, serial#, username, status, osuser, machine, program FROM v$session WHERE username IS NOT NULL;

    Useful for monitoring active connections, especially in multi-user setups.

    ๐Ÿ”ด Advanced Commands — When You Need Firepower

    ⛓️ Blocking Sessions Detector

    SELECT s1.sid || ',' || s1.serial# AS blocker, s2.sid || ',' || s2.serial# AS blocked, s1.username AS blocker_user, s2.username AS blocked_user FROM v$lock l1 JOIN v$session s1 ON l1.sid = s1.sid JOIN v$lock l2 ON l2.block = 1 AND l2.id1 = l1.id1 AND l2.id2 = l1.id2 JOIN v$session s2 ON l2.sid = s2.sid;

    Debug locks and performance bottlenecks in real time.

    ๐Ÿ”ฅ Top SQL by CPU Usage

    SELECT * FROM ( SELECT sql_id, parsing_schema_name, cpu_time/1000000 AS cpu_seconds, executions, sql_text FROM v$sql ORDER BY cpu_time DESC ) WHERE ROWNUM <= 10;

    Spot expensive queries before they throttle the system.

    ๐Ÿ“ฆ Archive Log Status

    ARCHIVE LOG LIST;

    A fast way to verify if your DB is in archive log mode—critical for RMAN and PITR operations.

    ⏱️ Wait Event Breakdown

    SELECT event, total_waits, time_waited/100 AS seconds_waited FROM v$system_event ORDER BY time_waited DESC FETCH FIRST 10 ROWS ONLY;

    Helps diagnose performance issues by identifying system-level wait events.

    Monday, June 30, 2025

    Unlocking Efficiency: The Benefits of Oracle Multitenant Architecture

     What Is Oracle Multitenant?

    Introduced with Oracle Database 12c, the Multitenant architecture allows you to consolidate multiple pluggable databases (PDBs) into a single container database (CDB). This separation of metadata and user data brings modularity and scalability to Oracle environments, while simplifying management.

    Key Benefits

    1. Streamlined Management
    Gone are the days of patching or backing up dozens of separate databases one by one. With Multitenant, operations like patching, upgrades, or backups apply at the CDB level—impacting all PDBs uniformly. This slashes administrative overhead dramatically.

    2. Improved Resource Utilization
    Consolidating databases means better memory and CPU distribution across PDBs. The result? Reduced infrastructure costs without compromising performance.

    3. Faster Provisioning and Cloning
    Need a new environment for dev or testing? Just clone a PDB—no downtime, no fuss. You can even clone from a snapshot for instant provisioning.

    4. Isolation with Flexibility
    Each PDB operates independently with its own schemas, users, and privileges. This isolation enhances security and simplifies tenancy in SaaS or departmental setups.

    5. Touch-Free Automation Possibilities
    For script-savvy DBAs (like yourself!), Multitenant pairs beautifully with automation workflows. From provisioning to lifecycle management, repetitive tasks can be streamlined and error-proofed with simple scripting—boosting both speed and reliability.

    6. License-Aware Scalability
    Even with a standard edition license, Oracle allows a limited number of PDBs. This means small teams or organizations can enjoy some multitenancy benefits without springing for enterprise licensing—though greater scale unlocks more.


    Final Thoughts

    Oracle Multitenant isn't just about consolidation—it's about transformation. Whether you're managing dev/test environments, deploying SaaS offerings, or aiming for cloud-native scalability, Multitenant offers a path to smarter, leaner database operations.



    Sunday, February 2, 2025

    QuickStart: Build an App Using an Excel Spreadsheet in Oracle APEX

     

    QuickStart: Build an App Using an Excel Spreadsheet in Oracle APEX



    Oracle APEX (Application Express) makes it incredibly easy to turn an Excel spreadsheet into a fully functional web application without extensive coding. This QuickStart guide walks you through the process, from importing your spreadsheet to deploying a working app in Oracle APEX.

    ๐Ÿš€ Why Use Oracle APEX with Excel?

    • No Coding Required: APEX automates much of the process.

    • Fast & Scalable: Quickly transform data into a secure, interactive app.

    • Built-in Features: Search, filter, and sort data effortlessly.


    ๐Ÿ› ️ Prerequisites

    Before getting started, ensure you have:


    ๐Ÿ“‚ Step 1: Prepare Your Excel Spreadsheet

    Ensure your Excel file is formatted correctly:

    • The first row should contain column headers (e.g., Customer Name, Email, Phone, Order Date, Amount).

    • Avoid merged cells and unnecessary formatting.

    • Save the file as .xlsx or .csv.

    ๐Ÿ‘‰ Download Sample Excel File

    Download Sample CSV


    ๐Ÿ“ค Step 2: Upload the Excel File to Oracle APEX

    1. Log in to Oracle APEX and go to your workspace.

    2. Click on App BuilderCreate.

    3. Select From a FileUpload a Spreadsheet.

    4. Click Choose File, select your Excel file, and click Next.

    5. Review the Data Preview to ensure column mapping is correct.

    6. Click Load Data to import your spreadsheet into the database.


    ⚙️ Step 3: Create an Interactive App

    1. After importing the data, select Create an Application.

    2. Choose a Table Name and click Next.

    3. Select Add Report and Form to generate an interactive report.

    4. Configure settings such as Authentication (Default recommended).

    5. Click Create Application and Run it.

    ✅ Your app is now live! You can filter, sort, and interact with the data effortlessly.


    ๐ŸŽจ Step 4: Customize Your App (Optional)

    • Edit Form Layout: Drag and drop fields to enhance the UI.

    • Add Charts & Dashboards: Use APEX’s built-in visualizations.

    • Set User Roles & Permissions: Control data access securely.


    ๐Ÿš€ Next Steps

    • Try modifying the app layout: Use Page Designer for more flexibility.

    • Explore APEX Plugins: Enhance functionality with ready-made plugins.

    • Deploy the App: Share it with colleagues via a secure APEX URL.


    ๐Ÿ”— Useful Links


    ๐Ÿ’ฌ Final Thoughts

    Oracle APEX simplifies app development for business users and developers alike. With just an Excel spreadsheet, you can build a fully functional, database-driven web application in minutes.

    ๐Ÿ’ก Have questions or feedback? Let’s connect! Drop a comment below or reach out on LinkedIn. ๐Ÿš€


    #OracleAPEX #LowCode #AppDevelopment #ExcelToApp #NoCode #Database #Automation #OracleCloud #TechInnovation #DigitalTransformation #SQL #DataVisualization #CloudComputing #BusinessApps #WebDevelopment #FutureOfTech #ProductivityTools #AI #DataDriven #SoftwareEngineering #EnterpriseApps

    Thursday, July 11, 2024

    Setting up Oracle 23ai FREE on Windows Server 2022 Azure Edition

     Setting up Oracle 23ai FREE on Windows Server 2022 Azure Edition


    Howdy!

    In this quick blog post, we shall go through the steps of setting up Oracle 23ai FREE on Windows Server 2022 Azure Edition


    Prerequisites:

    1. An Azure Account - Free Trial / Pay As You Go
    2. Oracle 23ai Windows Installer 
    3. Admin Rights to install


      Setup:


      1) Once you have provisioned a VM in Azure, follow these next steps

      2) Download the Oracle Database 23ai FREE from the followinf URL

      Get Started with Oracle Database 23ai | Oracle

      Here is the link to the installer:



            3) Create a directory on your C:\ say C:\dbfree 

            4) Now Run the installer and follow the screenshots presented in the next few steps.



     














    Now if you see this error: Follow the steps outlined and restart the installer: Oracle is aware of this.




    In a Windows Command Prompt run the following as an Administrator.


    icacls c:\dbfree /inheritancelevel:d

                                                  icacls c:\dbfree /remove:g *s-1-5-11



    Now review the properties of the C:\dbfree directory





    Once you have applied the instructions. 

    Now you can see the install making progress





    The install will succeed and show a success page as shown below.





    Now let's test this out ...





    Now let's verify the name, open_mode and platform_name from the V$database view.


    SQL> select name,open_mode,platform_name
      2  from v$database;

    NAME      OPEN_MODE
    --------- --------------------
    PLATFORM_NAME
    --------------------------------------------------------------------------------
    FREE      READ WRITE
    Microsoft Windows x86 64-bit





    Congratulations!  You now have Oracle23ai FREE running in Windows Server 2022 Azure Edition!

    Stay tuned for more tutorials coming up...

    Happy Databasing!! with Oracle 23ai!

     

    Oracle 21c Installation Guide on Windows

      Oracle 21c Installation Guide on Windows This guide walks you through installing Oracle Database 21c on Windows and configuring it for ...