Focus On Oracle

Installing, Backup & Recovery, Performance Tuning,
Troubleshooting, Upgrading, Patching

Oracle Engineered System


当前位置: 首页 » 技术文章 » Oracle

Oracle Database Express Edition 18c发布了

在2018年10月19日,Oracle 发布了Oracle Database Express Edition (XE)18c的第一个版本, 版本号为18.4.0.0.0。目前只支持在Linux上部署。其他平台的比如Windows版、Docker版、VirtualBox版还没有释出。这个版本是没有Oracle服务,没有补丁支持。也不能提交SR,如果有问题可以到https://community.oracle.com/community/database/developer-tools/oracle_database_express_edition_xe社区提问。


在Oracle Database 18c XE上资源的限制
    3 Pluggable Databases
    2 CPUs for foreground processes
    2GB of RAM (SGA and PGA combined)
    12GB of user data on disk (irrespective of compression factor)

在Oracle Linux上安装方法
    Download oracle-database-xe-18c-1.0-1.x86_64.rpm
    Run “yum -y localinstall oracle-database*18c*”
    Run “/etc/init.d/oracle-xe-18c configure”
在Red Hat compatible Linux distribution上安装方
    Download oracle-database-xe-18c-1.0-1.x86_64.rpm
    Run “curl -o oracle-database-preinstall-18c-1.0-1.el7.x86_64.rpm https://yum.oracle.com/repo/OracleLinux/OL7/latest/x86_64/getPackage/oracle-database-preinstall-18c-1.0-1.el7.x86_64.rpm”
    Run “yum -y localinstall oracle-database*18c*”
    Run “/etc/init.d/oracle-xe-18c configure”
下面是不同语言连接数据库的方式
SQL
    -- Connect string format: [username]/[password]@//[hostname]:[port]/[DB name] [AS SYSDBA]
    -- To connect to the Container Database (CDB) use:
    sqlplus sys/GetStarted18c@//localhost:1521/XE as sysdba
     
    -- To connect to the first Pluggable Database (PDB) use:
    sqlplus sys/GetStarted18c@//localhost:1521/XEPDB1 as sysdba
Java
    OracleDataSource ods = new OracleDataSource();
    ods.setURL("jdbc:oracle:thin:@//localhost:1521/XEPDB1"); // jdbc:oracle:thin@//[hostname]:[port]/[DB name]
    ods.setUser("system"); // [username]
    ods.setPassword("GetStarted18c"); // [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 cx_Oracle
     
    # Connect string format: [username]/[password]@//[hostname]:[port]/[DB name]
    conn = cx_Oracle.connect("system/GetStarted18c@//localhost:1521/XEPDB1")
    cur = conn.cursor()
    cur.execute("SELECT 'Hello World!' FROM dual")
    res = cur.fetchall()
    print(res)
Node.js
    var oracledb = require('oracledb');
     
    oracledb.getConnection(
     {
      user : "system", // [username]
      password : "GetStarted18c", // [password]
      connectString : "//localhost:1521/XEPDB1" //[hostname]:[port]/[DB name]
     },
     function(err, connection) {
      if (err) {
       console.error(err.message);
       return;
      }
      connection.execute(
       "SELECT 'Hello World!' FROM dual",
       function(err, result) {
        if (err) {
         console.error(err.message);
         doRelease(connection);
         return;
        }
        console.log(result.rows);
        doRelease(connection);
      });
    });
     
    function doRelease(connection) {
     connection.close(
      function(err) {
       if (err) {
        console.error(err.message);
       }
     });
    }
C#.NET
    / Connection string format: User Id=[username];Password=[password];Data Source=[hostname]:[port]/[DB name];
    OracleConnection con = new OracleConnection("User Id=system;Password=GetStarted18c;Data
    Source=localhost:1521/XEPDB1;");
    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 name]
    $c = oci_pconnect("system", "GetStarted18c", "//localhost:1521/XEPDB1");
    $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'
    // "[username]/[password]@//[hostname]:[port]/[DB name]"
    con = OCI8.new("system/GetStarted18c@//localhost:1521/XEPDB1")
    statement = "SELECT 'Hello World!' FROM dual"
    cursor = con.parse(statement)
    cursor.exec
    cursor.fetch do |row|
      print row
    end
Go
    package main
    import (
      "database/sql"
      "fmt"
      "log"
      _ "gopkg.in/goracle.v2"
    )
     
    func main() {
     
      // Connect string format: [username]/[password]@//[hostname]:[port]/[DB name]
      db, err := sql.Open("goracle", "system/GetStarted18c@//localhost:1521/XEPDB1")
      if err != nil {
        log.Fatal(err)
      }
      defer db.Close()
     
      rows, err := db.Query("SELECT 'Hello World!' FROM dual")
      if err != nil {
        log.Fatal(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)
      }
     
    }


Reference
https://www.oracle.com/database/technologies/appdev/xe.html

https://www.oracle.com/database/technologies/appdev/xe/quickstart.html
https://www.oracle.com/database/technologies/appdev/xe/faq.html
https://docs.oracle.com/en/database/oracle/oracle-database/18/xeinl/installation-guide.html

https://www.oracle.com/technetwork/licenses/db18c-express-license-5137264.html


关键词:xe 18c oracle 

相关文章

低代码开发用Oracle Apex,看这篇就够了
Oracle Database 20c之SQL宏
Java beginner for Oracle DBA
Oracle Database 20c之区块链表
Oracle Database 20c的一些微妙变化
关于Oracle的Sequence,你需要知道的
Oracle数据库优化方面资料
Oracle Database 19c在优化方面有哪些新特性
Oracle Database 20c云端预览版发布了
Oracle 19c新特性之RAC Automatic Failback Service
Install Oracle RAC Database 19c Step by Step
保障业务连续性的神器
Top