Oracle Database Free Release Quick Start

Experience the next generation of database innovation with Oracle Database 23ai. Designed to simplify development for AI, microservices, graph, document, spatial, and relational applications, this converged database platform offers everything you need in one powerful solution. Even better, you can jump right in at no cost—Oracle Database 23ai Free is available for anyone who wants to get started building modern, data-driven applications. Whether you choose our commercial product in the cloud or on-premises (see availability list) or opt for the free edition, you’ll have all the tools you need to create the future of data management.

Oracle Database 23ai Free Platforms


Microsoft Windows x64
Filename WINDOWS.X64_239000_free.zip
Download Link to download
SHA256 2e2786b5151a2cc49d5023ca34dfe2a4e3ee9a0ed5b9d18e0592964b565bac0a
File size (in bytes) 1,382,605,162
Notes

Oracle Database Free Installation Guide
Oracle Database Client Installation Guide

Oracle Linux 8 (OL8)
Filename oracle-database-free-23ai-23.9-1.el8.x86_64.rpm
Download Link to download
SHA256 a6e64941ad940dd23e152e3d51213aeaea6d93b43688fbd030175935e0efe03d
File size (in bytes) 1,412,957,372
Notes

Oracle Linux 8 (OL8) and Oracle Enterprise Linux (EL8) use the same RPMs. EL8 requires an additional preinstall download and installation (see below).

Oracle Database Free Installation Guide
Oracle Database Client Installation Guide

Oracle Linux 9 (OL9)
Filename oracle-database-free-23ai-23.9-1.el9.x86_64.rpm
Download Link to download
SHA256 35a5b2e4065747eea3258d4f0c8d9a6e5440a818945da183fc631750cce4d999
File size (in bytes) 1,412,957,372
Notes

Oracle Linux 9 (OL9) and Oracle Enterprise Linux (EL9) use the same RPMs. EL9 requires an additional preinstall download and installation (see below).

Oracle Database Free Installation Guide
Oracle Database Client Installation Guide

Oracle Enterprise Linux 8 (EL8)
Filename oracle-database-preinstall-23ai-1.0-2.el8.x86_64.rpm
Download Link to download
SHA256 4578e6d1cf566e04541e0216b07a0372725726a7c339423ee560255cb918138b
File size (in bytes) 31,152
Notes

Download and install this preinstall RPM first. Then follow with the main RPM below.
Run dnf install -y oracle-database-preinstall*

Filename oracle-database-free-23ai-23.9-1.el8.x86_64.rpm
Download Link to download
SHA256 a6e64941ad940dd23e152e3d51213aeaea6d93b43688fbd030175935e0efe03d
File size (in bytes) 1,412,957,372
Notes

Oracle Linux 8 (OL8) and Oracle Enterprise Linux (EL8) use the same RPMs. EL8 requires an additional preinstall download and installation (see below).

Oracle Database Free Installation Guide
Oracle Database Client Installation Guide

Oracle Enterprise Linux 9 (EL9)
Filename oracle-database-preinstall-23ai-1.0-2.el9.x86_64.rpm
Download Link to download
SHA256 aa7bc3a62f4118cc8e02ece2f67ddd276b2256833e4d66f939725b2ef22bebf9
File size (in bytes) 35,689
Notes

Download and install this preinstall EPM first. Then follow with the main RPM below.
Run dnf install -y oracle-database-preinstall*

Filename oracle-database-free-23ai-23.9-1.el9.x86_64.rpm
Download Link to download
SHA256 35a5b2e4065747eea3258d4f0c8d9a6e5440a818945da183fc631750cce4d999
File size (in bytes) 1,412,957,372
Notes

Oracle Linux 9 (OL9) and Oracle Enterprise Linux (EL9) use the same RPMs. EL9 requires an additional preinstall download and installation (see below).

Oracle Database Free Installation Guide
Oracle Database Client Installation Guide

Oracle Linux 8 for Arm (aarch64)
Filename oracle-database-preinstall-23ai-1.0-4.el8.aarch64.rpm
Download Link to download
SHA256 0603e020ddd3b19cb051fd47c122ee1c63af837c10ed9a9304acd938a43fd084
File size (in bytes) 31,468
Notes

Download and install this preinstall RPM first. Then follow with the main RPM below.
Run dnf install -y oracle-database-preinstall*

Filename oracle-database-free-23ai-23.8-1.el8.aarch64.rpm
Download Link to download
SHA256 c5cdd5d3b7017594899e8f13eb2d69f2ae6339ec3a78e647f18800ad7dc44346
File size (in bytes) 1,268,332,512
Notes

Oracle Database Free Installation Guide

Docker/Podman
Download Link to container registry
Notes Pull container images straight from Oracle’s Container Registry via docker pull container-registry.oracle.com/database/free:latest
Oracle VirtualBox
Filename Oracle_Database_23ai_Free_Developer.ova
Download Link to download
SHA256 b998e36dbcbddafa77f92ea220758cefdb17e41bccce307792cd17ec90eb1aaf
Size (in bytes) 6,284,277,760
Notes

Import the .ova file into your local Oracle VirtualBox setup.

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

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)
      }
     
}