重庆思庄Oracle、KingBase、PostgreSQL、Redhat认证学习论坛
标题:
解决 Windows 环境下 Oracle ASH 报告导出报错 ORA-01843
[打印本页]
作者:
ZhangQi
时间:
2026-4-5 11:19
标题:
解决 Windows 环境下 Oracle ASH 报告导出报错 ORA-01843
1. 问题现象
在 Windows 的 CMD 或 PowerShell 中运行 ashrpt.sql 导出报告时,输入 03/13/26 00:00:00 这种日期格式,系统可能会弹出如下错误:
> ORA-01843: 无效的月份 (not a valid month)
> ORA-06512: 在 "SYS.DBMS_SWRF_REPORT_INTERNAL", line 11980
原因分析:Windows 系统的 NLS_LANG 环境变量通常设置为中文,导致 Oracle 脚本在后台处理日期时,无法在“3月”和“03”之间正确转换,产生了格式冲突。
2. 解决方案
在 SQL*Plus 中,不要直接运行脚本,请先执行环境初始化命令:
第一步:强制统一会话语言
-- 强制设置为美式英语,避开中文字符干扰
ALTER SESSION SET NLS_DATE_LANGUAGE = 'AMERICAN';
-- 设置标准日期格式,确保输入输出一致
ALTER SESSION SET NLS_DATE_FORMAT = 'YYYY-MM-DD HH24:MI:SS';
第二步:运行 ASH 脚本
@?\rdbms\admin\ashrpt.sql
第三步:标准输入示例
当脚本提示输入时,请遵循以下格式:
Enter begin time: 03/12/26 00:00
Enter duration: 30 (单位为分钟)
此时便能够正常导出
欢迎光临 重庆思庄Oracle、KingBase、PostgreSQL、Redhat认证学习论坛 (http://bbs.cqsztech.com/)
Powered by Discuz! X3.2