Oracle APEX支持对象安装失败:数据插入报错及解决咨询
解决Oracle APEX支持对象数据加载失败(ORA-20001)的方法
1. 查看具体错误原因
报错提示错误日志已写入表APX$ERR$COMPANION_PERIODS$1671,先查询该表获取每条数据插入失败的详细信息:
SELECT * FROM APX$ERR$COMPANION_PERIODS$1671;
该表会记录失败行的内容、错误代码及原因,常见问题包括:主键/唯一键冲突、字段数据类型不匹配、外键约束违反、非空约束未满足等。
2. 根据错误原因修复问题
针对查询到的具体错误,对应处理:
- 主键/唯一键冲突:检查目标表
COMPANION_PERIODS中是否已存在重复记录,要么删除表中重复数据,要么修改插入脚本里的重复条目。 - 字段类型不匹配:比如插入字符串长度超过字段定义、日期格式不符合要求,调整数据格式或修改表字段长度(若业务允许)。
- 外键约束失败:确认外键关联的表中已存在对应记录,确保依赖数据提前加载完成。
- 其他约束违反:修正不符合非空、检查约束的数据内容。
3. 删除错误日志表
根据报错要求,必须先删除错误日志表才能重新执行加载:
DROP TABLE APX$ERR$COMPANION_PERIODS$1671;
若表不存在,忽略报错即可,确认表名与报错信息一致。
4. 重新执行数据加载
- 若通过APEX界面安装支持对象:回到支持对象安装页面,重新触发数据加载步骤。
- 若手动执行脚本:重新调用
apex_data_install.load_supporting_object_data函数,确保传入的参数(如表名、数据源等)正确无误。
额外注意事项
- 确认DDL创建的表结构与插入数据的字段完全匹配,包括字段名、数据类型、长度、约束。
- 批量加载数据时,可考虑分批次执行,避免一次性处理过多数据引发异常。
- 检查当前APEX用户是否拥有
COMPANION_PERIODS表的插入权限,以及操作错误日志表的权限。
内容的提问来源于stack exchange,提问作者Ziad Adnan
相关产品推荐
相关产品推荐

