(AI总结版)完整操作流程:从零配置 Oracle 21c XE 开发环境(安装 CO 示例、安装 SCOTT 教学示例)

本文详细介绍了Oracle21cXE开发环境的完整配置流程,包括五个关键阶段:

  1. 准备工作确认环境信息;
  2. 连接数据库并创建表空间和用户;
  3. 导入100万行测试数据;
  4. 安装CO现代业务示例模式;
  5. 安装SCOTT经典教学示例。

每个步骤都提供了具体的SQL命令和验证方法,并标注了常见错误及解决方法。


最终在SQLDeveloper中配置了三个连接:大数据开发(BIGDATA_DEV)、CO示例和SCOTT教学,分别用于不同场景。


文档特别强调了路径设置、权限分配等关键细节,为开发者提供了从零开始搭建Oracle开发环境的完整指南。


📋 完整操作流程:从零配置 Oracle 21c XE 开发环境


第一阶段:准备工作

1. 确认环境信息

  • Oracle 21c XE 已安装

  • PDB(可插拔数据库)名称:XEPDB1

  • SYSTEM 用户密码:安装时设置的密码

2. 打开终端(命令提示符)

  • Win + R,输入 cmd,回车

  • 注意:不是在 SQL Developer 的编辑器中,而是在 Windows 的命令提示符中操作


第二阶段:连接数据库并创建表空间和用户

3. 用 SYSTEM 连接到 PDB

cmd

复制代码
sqlplus system@localhost:1521/XEPDB1

输入 SYSTEM 密码,看到 SQL> 提示符表示成功。

4. 创建表空间(用于大数据开发用户)

sql

复制代码
CREATE TABLESPACE bigdata_ts 
DATAFILE 'D:\APPDATA\DATABASE\ORADATA\XE\XEPDB1\bigdata01.dbf' 
SIZE 500M 
AUTOEXTEND ON NEXT 100M;

注意 :路径需根据实际查询结果调整。可通过 SELECT name FROM v$datafile; 查看正确路径。

5. 创建 BIGDATA_DEV 用户并授权

sql

复制代码
CREATE USER bigdata_dev IDENTIFIED BY dev123 DEFAULT TABLESPACE bigdata_ts QUOTA UNLIMITED ON bigdata_ts;
GRANT CONNECT, RESOURCE, CREATE SESSION, CREATE TABLE TO bigdata_dev;

6. 验证 BIGDATA_DEV 连接

cmd

复制代码
sqlplus bigdata_dev/dev123@localhost:1521/XEPDB1

第三阶段:导入测试数据(100万行)

7. 在 BIGDATA_DEV 用户下创建 ORDERS 表并插入数据

sql

复制代码
CREATE TABLE orders (
    order_id     NUMBER PRIMARY KEY,
    customer_id  NUMBER,
    product_name VARCHAR2(100),
    order_amount NUMBER(10,2),
    order_date   DATE,
    status       VARCHAR2(20)
);

BEGIN
    FOR i IN 1..1000000 LOOP
        INSERT INTO orders VALUES (
            i,
            TRUNC(DBMS_RANDOM.VALUE(1, 10001)),
            'Product_' || TRUNC(DBMS_RANDOM.VALUE(1, 501)),
            ROUND(DBMS_RANDOM.VALUE(10, 5001), 2),
            SYSDATE - TRUNC(DBMS_RANDOM.VALUE(1, 366)),
            CASE TRUNC(DBMS_RANDOM.VALUE(1, 4))
                WHEN 1 THEN 'COMPLETED'
                WHEN 2 THEN 'PENDING'
                ELSE 'CANCELLED'
            END
        );
        IF MOD(i, 10000) = 0 THEN COMMIT; END IF;
    END LOOP;
    COMMIT;
END;
/

8. 验证数据

sql

复制代码
SELECT COUNT(*) FROM orders;  -- 应返回 1000000

第四阶段:安装 CO 示例模式(现代业务模型)

9. 下载并解压示例脚本

  • 从 GitHub 下载:https://github.com/oracle-samples/db-sample-schemas/releases/latest

  • 解压到纯英文路径,如 D:\sample\db-sample-schemas-23.3

10. 安装 CO 模式

cmd

复制代码
sqlplus system@localhost:1521/XEPDB1

sql

复制代码
CREATE TABLESPACE co_data 
DATAFILE 'D:\APPDATA\DATABASE\ORADATA\XE\XEPDB1\co_data01.dbf' 
SIZE 500M 
AUTOEXTEND ON NEXT 100M;

切换到脚本目录(在 SQL*Plus 中):

sql

复制代码
host cd /d D:\sample\db-sample-schemas-23.3\customer_orders
@co_install.sql

按提示输入:

  • CO 用户密码:co123

  • 默认表空间:co_data

  • 临时表空间:TEMP

11. 验证 CO 模式

cmd

复制代码
sqlplus co/co123@localhost:1521/XEPDB1

sql

复制代码
SELECT table_name FROM user_tables;  -- 应显示 7 张表

第五阶段:安装 SCOTT 教学示例(经典 EMP/DEPT)

12. 手动创建 SCOTT 用户并导入数据

cmd

复制代码
sqlplus system@localhost:1521/XEPDB1

sql

复制代码
-- 删除已存在的 SCOTT 用户(如果有)
DROP USER scott CASCADE;

-- 创建 SCOTT 用户
CREATE USER scott IDENTIFIED BY tiger;
GRANT CONNECT, RESOURCE, CREATE SESSION, CREATE TABLE, UNLIMITED TABLESPACE TO scott;
ALTER USER scott ACCOUNT UNLOCK;

-- 退出并重新用 SCOTT 登录
EXIT

cmd

复制代码
sqlplus scott/tiger@localhost:1521/XEPDB1

13. 创建表和插入数据

sql

复制代码
CREATE TABLE DEPT (
    DEPTNO NUMBER(2) PRIMARY KEY,
    DNAME VARCHAR2(14),
    LOC VARCHAR2(13)
);

CREATE TABLE EMP (
    EMPNO NUMBER(4) PRIMARY KEY,
    ENAME VARCHAR2(10),
    JOB VARCHAR2(9),
    MGR NUMBER(4),
    HIREDATE DATE,
    SAL NUMBER(7,2),
    COMM NUMBER(7,2),
    DEPTNO NUMBER(2) REFERENCES DEPT(DEPTNO)
);

-- 插入 DEPT 数据
INSERT INTO DEPT VALUES (10, 'ACCOUNTING', 'NEW YORK');
INSERT INTO DEPT VALUES (20, 'RESEARCH', 'DALLAS');
INSERT INTO DEPT VALUES (30, 'SALES', 'CHICAGO');
INSERT INTO DEPT VALUES (40, 'OPERATIONS', 'BOSTON');

-- 插入 EMP 数据
INSERT INTO EMP VALUES (7369, 'SMITH', 'CLERK', 7902, TO_DATE('1980-12-17', 'YYYY-MM-DD'), 800, NULL, 20);
INSERT INTO EMP VALUES (7499, 'ALLEN', 'SALESMAN', 7698, TO_DATE('1981-02-20', 'YYYY-MM-DD'), 1600, 300, 30);
INSERT INTO EMP VALUES (7521, 'WARD', 'SALESMAN', 7698, TO_DATE('1981-02-22', 'YYYY-MM-DD'), 1250, 500, 30);
INSERT INTO EMP VALUES (7566, 'JONES', 'MANAGER', 7839, TO_DATE('1981-04-02', 'YYYY-MM-DD'), 2975, NULL, 20);
INSERT INTO EMP VALUES (7654, 'MARTIN', 'SALESMAN', 7698, TO_DATE('1981-09-28', 'YYYY-MM-DD'), 1250, 1400, 30);
INSERT INTO EMP VALUES (7698, 'BLAKE', 'MANAGER', 7839, TO_DATE('1981-05-01', 'YYYY-MM-DD'), 2850, NULL, 30);
INSERT INTO EMP VALUES (7782, 'CLARK', 'MANAGER', 7839, TO_DATE('1981-06-09', 'YYYY-MM-DD'), 2450, NULL, 10);
INSERT INTO EMP VALUES (7788, 'SCOTT', 'ANALYST', 7566, TO_DATE('1987-07-13', 'YYYY-MM-DD'), 3000, NULL, 20);
INSERT INTO EMP VALUES (7839, 'KING', 'PRESIDENT', NULL, TO_DATE('1981-11-17', 'YYYY-MM-DD'), 5000, NULL, 10);
INSERT INTO EMP VALUES (7844, 'TURNER', 'SALESMAN', 7698, TO_DATE('1981-09-08', 'YYYY-MM-DD'), 1500, 0, 30);
INSERT INTO EMP VALUES (7876, 'ADAMS', 'CLERK', 7788, TO_DATE('1987-07-13', 'YYYY-MM-DD'), 1100, NULL, 20);
INSERT INTO EMP VALUES (7900, 'JAMES', 'CLERK', 7698, TO_DATE('1981-12-03', 'YYYY-MM-DD'), 950, NULL, 30);
INSERT INTO EMP VALUES (7902, 'FORD', 'ANALYST', 7566, TO_DATE('1981-12-03', 'YYYY-MM-DD'), 3000, NULL, 20);
INSERT INTO EMP VALUES (7934, 'MILLER', 'CLERK', 7782, TO_DATE('1982-01-23', 'YYYY-MM-DD'), 1300, NULL, 10);

-- 创建 SALGRADE 表
CREATE TABLE SALGRADE (GRADE NUMBER, LOSAL NUMBER, HISAL NUMBER);
INSERT INTO SALGRADE VALUES (1, 700, 1200);
INSERT INTO SALGRADE VALUES (2, 1201, 1400);
INSERT INTO SALGRADE VALUES (3, 1401, 2000);
INSERT INTO SALGRADE VALUES (4, 2001, 3000);
INSERT INTO SALGRADE VALUES (5, 3001, 9999);

-- 创建 BONUS 表
CREATE TABLE BONUS (ENAME VARCHAR2(10), JOB VARCHAR2(9), SAL NUMBER, COMM NUMBER);

COMMIT;

14. 验证 SCOTT 用户

sql

复制代码
SELECT COUNT(*) FROM EMP;   -- 应返回 14
SELECT COUNT(*) FROM DEPT;  -- 应返回 4

第六阶段:在 SQL Developer 中配置连接

15. 新建三个连接

连接名 用户名 密码 服务名
大数据开发 bigdata_dev dev123 XEPDB1
CO示例 co co123 XEPDB1
SCOTT教学 scott tiger XEPDB1

📊 最终环境总览

用户 表/数据量 用途
BIGDATA_DEV ORDERS(100万行) 大数据量性能测试
CO 7张关联表(数千行) 现代业务模型练习
SCOTT EMP(14行)、DEPT(4行)等 跟着教学视频练习

💡 关键避坑点

问题 原因 解决方法
ORA-65096 在 CDB 中创建普通用户 切换到 PDB:ALTER SESSION SET CONTAINER = XEPDB1
ORA-00959 表空间不存在 数据文件路径错误 先用 SELECT name FROM v$datafile; 确认路径
ORA-00942 表不存在 CONNECT BY 权限问题 改用 PL/SQL 块插入数据
SP2-0310 无法打开文件 在 Windows 命令行而不是 SQL*Plus 中执行 确保提示符是 SQL>
ORA-01017 密码无效 SCOTT 用户未创建或密码错误 DROP USER scott CASCADE; 后重建

这份记录涵盖了从零开始配置 Oracle 21c XE 大数据开发环境的完整流程。

相关推荐
iAm_Ike6 分钟前
如何用 IndexedDB 存储从 API 获取的超大列表并实现二级索引
jvm·数据库·python
数据最前线16 分钟前
亡羊补牢?Oracle 计划推出月度安全补丁
数据库·oracle
X566127 分钟前
CSS Flex布局如何让特定子元素不参与缩放_设置flex-shrink- 0的实战技巧
jvm·数据库·python
weixin_4440129336 分钟前
CSS如何快速实现网站换肤功能_利用CSS变量重置全局颜色方案
jvm·数据库·python
m0_596749091 小时前
Vue.js计算属性computed依赖追踪与副作用函数effect关联机制
jvm·数据库·python
zgdlsz1 小时前
羲之文化传承人王杰宝:沉厚笔墨间的守正出新
大数据·数据库·数据仓库·涛思数据
打小就很皮...1 小时前
基于 Python + LangChain + SQL 生成自动查询数据实战
数据库·sql·langchain
xcLeigh1 小时前
KES大小写混合路径+国产OS/文件系统兼容实战
linux·数据库·文件系统·兼容性·麒麟·欧拉·kes
神明9311 小时前
Golang testing怎么写单元测试_Golang单元测试教程【经典】
jvm·数据库·python
神明9311 小时前
如何自动同步SQL异构表数据_利用触发器实现实时数据复制
jvm·数据库·python