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 074c80f81b0a95c2d3bc0576791e61c0cd47f17d2fc55fe426fc4d656e328dc6
Size (in bytes) 6083107840
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
Notes Windows users can run Oracle Database Free using the provided container image and Docker Desktop for Windows or Oracle VM VirtualBox image. A Windows native installation is coming soon.

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