You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Oracle 21c Express安装HR schema失败及SP2-0310错误修复求助

修复Oracle 21c XE中HR Schema脚本执行的SP2-0310错误

问题背景

在Oracle 21c Express Edition环境下,通过Oracle SQL Developer 22.x以SYSTEM用户执行GitHub下载的HR Schema的hr_main.sql脚本时,先遇到ORA-01918(用户不存在)、ORA-65096(无效的公共用户或本地用户名称)错误,执行alter session set "_oracle_script"=true;后HR用户创建成功,但出现SP2-0310错误,提示无法找到__SUB__CWD__路径下的hr_cre.sql、hr_idx.sql等依赖文件。

错误原因

__SUB__CWD__是脚本中定义的当前工作目录变量,但SQL Developer无法自动识别并替换该变量,导致脚本找不到依赖文件的实际路径。

修复方法

1. 手动替换脚本中的路径变量

  • 打开hr_main.sql文件,查找所有包含@__SUB__CWD__/的行(比如@__SUB__CWD__/hr_cre.sql)
  • 将__SUB__CWD__替换为你本地HR Schema文件所在的绝对路径,例如:
    • Windows系统:@"C:\Users\YourName\Downloads\hr-schema\hr_cre.sql"(路径含空格需加引号)
    • Linux/Mac系统:@/home/yourname/downloads/hr-schema/hr_cre.sql
  • 保存修改后的脚本,重新执行即可。

2. 在SQL Developer中设置默认工作目录

  • 打开SQL Developer,依次点击工具 → 首选项 → 数据库 → 工作表
  • 在「默认路径」选项中,选择你下载的HR Schema文件所在的文件夹,点击「确定」
  • 关闭并重新打开SQL Worksheet,再次执行hr_main.sql,脚本会自动从设置的默认路径加载依赖文件。

3. 改用SQL*Plus执行脚本(更可靠的方式)

  • 打开命令提示符(Windows)或终端(Linux/Mac),通过cd命令切换到HR Schema文件所在的目录
  • 用SYSTEM用户登录SQL*Plus:
    sqlplus system/your_system_password@xe
    
  • 先执行会话设置:
    alter session set "_oracle_script"=true;
    
  • 最后执行主脚本:
    @hr_main.sql
    
  • 按提示输入所需参数(如HR用户密码、表空间名称等),这种方式会直接从当前目录读取依赖脚本,不会出现路径识别问题。

补充说明

  • ORA-65096错误是因为Oracle 21c XE采用CDB(容器数据库)架构,默认禁止在根容器创建普通用户,alter session set "_oracle_script"=true;命令可以绕过这个限制,允许创建非CDB风格的用户。
  • ORA-01918错误是之前HR用户创建失败导致的,解决容器限制后即可正常创建用户。

内容的提问来源于stack exchange,提问作者Đỗ Như Vỹ

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.05 11:05:21