重庆思庄Oracle、KingBase、PostgreSQL、Redhat认证学习论坛

 找回密码
 注册

QQ登录

只需一步,快速开始

搜索
查看: 95|回复: 0
打印 上一主题 下一主题

[Oracle] 解决 Windows 环境下 Oracle ASH 报告导出报错 ORA-01843

[复制链接]
跳转到指定楼层
楼主
发表于 2026-4-5 11:19:02 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
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 (单位为分钟)

此时便能够正常导出


分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 支持支持 反对反对
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

QQ|手机版|小黑屋|重庆思庄Oracle、Redhat认证学习论坛 ( 渝ICP备12004239号-4 )

GMT+8, 2026-4-17 18:30 , Processed in 0.287527 second(s), 21 queries .

重庆思庄学习中心论坛-重庆思庄科技有限公司论坛

© 2001-2020

快速回复 返回顶部 返回列表