`

ORA-01843 无效的月份

 
阅读更多

现象:

提供给现场PSO的SQL脚本在本地测试绝对没问题,但是到了现场环境就 报ORA-01843

 

SQL如下:

Insert into PMS_TEMPLATE(TPL_ID,TPL_NAME,SRC_TYPE,MODEL_ID,UPTPL_ID,SUIT_ID,TPL_SIZE,TPL_PATH,TPL_NOTE,TPL_TIME) 
values (1201,'三星 GALAXY S4预售专题页',1,null,156,4,0,'/4/ecpsactivity/presale/preSale',null,to_timestamp('12-3月 -13 03.26.33.414000000 下午','DD-MON-RR HH.MI.SS.FF AM'));

  

 

最后查出原因:

现场数据库中NLS_DATE_LANGUAGE是AMRICA,当然不会识别中文的月份格式化了由于更改生产库中的参数会造成不必要的风险,所以修改当前会话的参数。主要SQL语句如下 

--查看日期格式及语言
select * from v$nls_parameters where parameter like '%DATE%';

--更改当前会话参数
alter session set nls_date_language='SIMPLIFIED CHINESE';

 

 附:ORACLE对于 NLS_DATE_LANGUAGE 的阐述:


NLS_DATE_LANGUAGE specifies the language to use for the spelling of day and month names and date abbreviations (a.m., p.m., AD, BC) returned by the TO_DATE and TO_CHAR functions.

NLS_LANGUAGE specifies the default language of the database. This language is used for messages, day and month names, symbols for AD, BC, a.m., and p.m., and the default sorting mechanism. This parameter also determines the default values of the parameters NLS_DATE_LANGUAGE and NLS_SORT.

分享到:
评论

相关推荐

    如何解决ORA-01843与NLS_DATE_FORMAT问题

    首先,`ORA-01843: 无效的月份` 错误通常是因为 Oracle 无法识别提供的日期字符串中的月份部分。这可能是由于日期格式不匹配,或者日期字符串本身包含了不合法的月份值(例如,超过12)。 在 Oracle SQL 查询中,...

    Oracle插入日期数据常见的2个问题和解决方法

    1、无效的月份问题 ...报错:ORA-01843:无效的月份。这是由于日期格式不对造成的。 解决办法: 用select sysdate from dual; 查看默认日期格式,然后按系统里的日期格式,输入就可以解决问题了。 2、日期插入格

    oracle日期时间数据类型与时间间隔数据类型讲解

    - 示例:获取今天的年份、月份和日期。 ```sql SELECT EXTRACT(YEAR FROM SYSDATE), EXTRACT(MONTH FROM SYSDATE), EXTRACT(DAY FROM SYSDATE) FROM dual; ``` - **TO_CHAR**: 使用不同的格式模型输出日期时间...

    kettle_使用中的一些常见问题

    错误描述:在尝试插入数据时,Oracle 报告 `ORA-01722: 无效数字` 错误,这通常是因为字段格式不匹配。例如,字段 "field2" 的值 "1,798" 被识别为字符串而非数字。 解决方案:在 Kettle 的【Excel 输入步骤】中,...

    Oracle的NLS参数在开发与维护中的设置问题分析.pdf

    首先,文章提到的一个典型问题是在插入含有日期字段的记录时,由于日期格式不匹配导致的"ORA-01843:无效的月份"错误。这通常是因为输入的日期格式与Oracle会话默认的NLS_DATE_FORMAT不一致。通过`show parameters`...

    监控Oracle数据库的常用shell脚本

    crontab文件中包含有六个字段:分钟、小时、月中的第几天、月份、星期几。 要编辑一个crontab文件,输入:crontab -e 要查看一个crontab文件,输入:crontab -l 例如: 0 4 * * 5 /dba/admin/analyze_table.ksh ...

    8个DBA最常用的监控Oracle数据库的常用shell脚本

    - **月份** (1-12) - **星期几** (0-6, 其中0=Sunday) **示例**: ```bash 0 4 * * 5 /dba/admin/analyze_table.ksh ``` 这个例子中的脚本会在每周五的凌晨4点运行。 ```bash 30 3 * * 3,6 /dba/admin/hotbackup....

    OracleSQL、函数、存储过程、错误消息帮助手册CHM格式.zip

    例如,ORA-00904是“无效列名”的错误,意味着引用了一个不存在的列名。了解错误消息及其含义有助于迅速定位问题并修复。 这个CHM帮助手册将提供以下内容: 1. SQL查询语法,包括SELECT、INSERT、UPDATE、DELETE...

    obiee11g常见问题集

    在分析透视中,用户可以设定某个维度的下钻行为,例如从年份层级钻入季度、月份等。 2. **资料档案库的二进制文件与MDs XML文档**:二进制文件是OBIEE元数据的存储形式,包含RPD(Repository)的所有信息;而MDs ...

Global site tag (gtag.js) - Google Analytics