Oracle Database Free Release Quick Start

Getting started with Oracle Database Free is quick and simple.

For more information and full step-by-step instructions, please review the installation guide for Linux.

Learn more about the new features available in Oracle Database 23ai Free

Installing Oracle Database 23ai Free


Docker/Podman
Download Oracle Container Registry
Notes Pull container images straight from Oracle’s Container Registry via docker pull container-registry.oracle.com/database/free:latest
Oracle VM VirtualBox
Filename Oracle_Database_23ai_Free_Developer.ova
Sha256sum df88f47bb1416b5a0c388975c3fd668e33491997b1de99b06d5c6a60334d7fa1
Size (in bytes) 6146150400
Notes

Import the 23ai Free .ova file into your local Oracle VM VirtualBox setup.

See Oracle Database 23ai Free VirtualBox Appliance for what’s in the Oracle VM VirtualBox image and Resource requirements.

Oracle Linux 8
Filename oracle-database-free-23ai-1.0-1.el8.x86_64.rpm
Sha256sum e6cccec7f101325c233f374c2aa86f77d62123edd3125450d79404c3eec30b65
Size (in bytes) 1378076936
Notes

Run dnf install -y oracle-database-free*

Run /etc/init.d/oracle-free-23ai configure

Oracle Linux 9
Filename oracle-database-free-23ai-1.0-1.el9.x86_64.rpm
Sha256sum 427ac8f337a9aa880e661d2574e9fac1427e9899a34c8459720432905bd30873
Size (in bytes) 1378076936
Notes

Run dnf install -y oracle-database-free*

Run /etc/init.d/oracle-free-23ai configure

Oracle Instant Client

Filename

Sha256sum

Size (in bytes)

instantclient-basic-linux.x64-23.4.0.24.05.zip

63835bf433b6b3e212082dfbd55662830d2104d71cc7e750cecda039726fe956

118377607

Filename

Sha256sum

Size (in bytes)

instantclient-sdk-linux.x64-23.4.0.24.05.zip

8c1b596c515121e280b555b2957baf363f3164dbff0c20a064d5c30551700d8d

1043624

Filename

Sha256sum

Size (in bytes)

Notes For development and deployment of applications that connect to Oracle Database
Oracle Database Client
Filename LINUX.X64_234000_client_home.zip
Sha256sum 43062559ac7970e6d581d288d3e32938bc5fdd2e975c3740a7547412f75a151f
Size (in bytes) 778147876
Global Service Manager
Filename LINUX.X64_234000_gsm.zip
Sha256sum 5f31eeb1047a8d2c43f1fe44ce39968f8caeb18a8a68a5e2cdf24f1aa364ea2f
Size (in bytes) 704518035
RedHat compatible Oracle Linux 8 distribution

Filename

Sha256sum

Size (in bytes)

oracle-database-preinstall-23ai-1.0-2.el8.x86_64.rpm

4578e6d1cf566e04541e0216b07a0372725726a7c339423ee560255cb918138b

31152

Filename

Sha256sum

Size (in bytes)

oracle-database-free-23ai-1.0-1.el8.x86_64.rpm

e6cccec7f101325c233f374c2aa86f77d62123edd3125450d79404c3eec30b65

1378076936

Notes

Run dnf install -y oracle-database-preinstall*

Run dnf install -y oracle-database-free*

Run /etc/init.d/oracle-free-23ai configure

RedHat compatible Oracle Linux 9 distribution

Filename

Sha256sum

Size (in bytes)

oracle-database-preinstall-23ai-1.0-2.el9.x86_64.rpm

aa7bc3a62f4118cc8e02ece2f67ddd276b2256833e4d66f939725b2ef22bebf9

35689

Filename

Sha256sum

Size (in bytes)

oracle-database-free-23ai-1.0-1.el9.x86_64.rpm

427ac8f337a9aa880e661d2574e9fac1427e9899a34c8459720432905bd30873

1378076936

Notes

Run dnf install -y oracle-database-preinstall*

Run dnf install -y oracle-database-free*

Run /etc/init.d/oracle-free-23ai configure

Windows
Filename
  • WINDOWS.X64_234000_free.zip
  • Sha256sum 4f771b7f1d54c7c713fb18b15f948591cd3bee409732acba9e2c5e302e115c7c
    Size (in bytes) 1334113752
    Notes Oracle Database 23ai Free for Windows Installation Guide

    Connecting to Oracle Database Free

    SQL

    • Connect string format: [username]@[hostname]:[port]/[DB service name] [AS SYSDBA]
    • To connect to the first Pluggable Database (PDB) use:
      
      
      
      					sqlplus sys@localhost:1521/FREEPDB1 as sysdba
      					
    • To connect to the Container Database (CDB) use:
      
      
      
      					sqlplus sys@localhost:1521/FREE as sysdba
      					

    Java

    
    
    
    OracleDataSource ods = new OracleDataSource();
    ods.setURL("jdbc:oracle:thin:@localhost:1521/FREEPDB1"); // jdbc:oracle:thin@[hostname]:[port]/[DB service name]
    ods.setUser("[Username]");
    ods.setPassword("[Password]");
    Connection conn = ods.getConnection();
     
    PreparedStatement stmt = conn.prepareStatement("SELECT 'Hello World!' FROM dual");
    ResultSet rslt = stmt.executeQuery();
    while (rslt.next()) {
      System.out.println(rslt.getString(1));
    }
    	

    Python

    
    
    
    import oracledb
    
    conn = oracledb.connect(user="[Username]", password="[Password]", dsn="localhost:1521/FREEPDB1")
    with conn.cursor() as cur:
       cur.execute("SELECT 'Hello World!' FROM dual")
       res = cur.fetchall()
       print(res)
    	

    Node.js

    
    
    
    const oracledb = require('oracledb');
         
    async function run() {
        let connection = await oracledb.getConnection({
        user : "[Username]",
        password : "[Password]",
        connectString : "localhost:1521/FREEPDB1" // [hostname]:[port]/[DB service name]
        });
        let result = await connection.execute( "SELECT 'Hello World!' FROM dual");
        console.log(result.rows[0]);
    }
         
    run();
    	

    C#/.NET

    
    
    
    					
    	// Connection string format: User Id=[username];Password=[password];Data Source=[hostname]:[port]/[DB service name];
        OracleConnection con = new OracleConnection("User Id=[Username];Password=[Password];Data Source=localhost:1521/FREEPDB1;");
        con.Open();
        OracleCommand cmd = con.CreateCommand();
        cmd.CommandText = "SELECT \'Hello World!\' FROM dual";
         
        OracleDataReader reader = cmd.ExecuteReader();
        reader.Read();
        Console.WriteLine(reader.GetString(0));
    	

    PHP

    
    
    
    // [username], [password], [hostname]:[port]/[DB service name]
    $c = oci_pconnect("[Username]", "[Password]", "localhost:1521/FREEPDB1");
    $s = oci_parse($c, "SELECT 'Hello World!' FROM dual");
    oci_execute($s);
    oci_fetch_all($s, $res);
    echo "<pre>\n"
    var_dump($res);
    echo "</pre>\n";
    	

    Ruby

    
    
    
    require 'oci8'
         
    con = OCI8.new("[Username]", "[Password]", "localhost:1521/FREEPDB1")
    statement = "SELECT 'Hello World!' FROM dual"
    cursor = con.parse(statement)
    cursor.exec
    cursor.fetch do |row|
    print row
    end
    	

    Go

    
    
    
    package main
         
    import (
          "fmt"
          "log"
          "database/sql"
          _ "github.com/godror/godror"
    )
         
    func main() {  
         
          // connectString format: [hostname]:[port]/[DB service name]
         
          dsn := `user="[Username]"
                  password="[Password]"
                  connectString="localhost:1521/FREEPDB1"`  
         
          db, err := sql.Open("godror", dsn)
          if err != nil {
            panic(err)
          }
          defer db.Close()
         
          rows, err := db.Query("SELECT 'Hello World!' FROM dual")
          if err != nil {
            panic(err)
          }
          defer rows.Close()
         
          var strVal string
          for rows.Next() {
            err := rows.Scan(&strVal)
            if err != nil {
              log.Fatal(err)
            }
            fmt.Println(strVal)
          }
          err = rows.Err()
          if err != nil {
            log.Fatal(err)
          }
         
    }