sql – INSERT语句中的“不是有效月份”
发布时间:2020-12-12 06:22:43 所属栏目:MsSql教程 来源:网络整理
导读:我有一个sql语句: Insert into MYSCHEMA.TABLE1 (ID,MY_DATE) values (167600,to_timestamp('15-APR-14 01.36.58.803000000 PM','DD-MON-RR HH.MI.SS.FF AM')); 当我读到这种格式是正确的(如here所述),但oracle返回错误SQL错误:ORA-01843:不是有效的月份.
我有一个sql语句:
Insert into MYSCHEMA.TABLE1 (ID,MY_DATE) values (167600,to_timestamp('15-APR-14 01.36.58.803000000 PM','DD-MON-RR HH.MI.SS.FF AM')); 当我读到这种格式是正确的(如here所述),但oracle返回错误SQL错误:ORA-01843:不是有效的月份.知道怎么解决这个问题吗?我使用的是Oracle Database 11b Express Edition. 解决方法除非您在表上设置了一个日期或时间戳列的触发器,这将在完整的错误堆栈中给出一些指示,这听起来像您的NLS_DATE_LANGUAGE不期望英语月份缩写.你所拥有的是英文有效的: alter session set nls_timestamp_format = 'RR/MM/DD HH24:MI:SSXFF'; alter session set nls_date_language ='ENGLISH'; select to_timestamp('15-APR-14 01.36.58.803000000 PM','DD-MON-RR HH.MI.SS.FF AM') as my_date from dual; MY_DATE --------------------------- 14/04/15 13:36:58.803000000 但是,如果您的会话的默认日期语言是波兰语(从您的个人资料中猜测),则会出现此错误 – 错误消息仍为英语: alter session set nls_date_language ='POLISH'; select to_timestamp('15-APR-14 01.36.58.803000000 PM','DD-MON-RR HH.MI.SS.FF AM') as my_date from dual; SQL Error: ORA-01843: not a valid month 01843. 00000 - "not a valid month" 如果您不想将会话设置为英语,则可以通过给出optional third parameter to alter session set nls_date_language ='POLISH'; select to_timestamp('15-APR-14 01.36.58.803000000 PM','DD-MON-RR HH.MI.SS.FF AM','NLS_DATE_LANGUAGE=ENGLISH') as my_date from dual; MY_DATE --------------------------- 14/04/15 13:36:58.803000000 您还可以通过使用月份号而不是月份名称或使用ANSI timestamp literal syntax来完全避免此问题: select timestamp '2014-04-15 13:36:58.803' from dual; TIMESTAMP'2014-04-1513:36:58.803' --------------------------------- 14/04/15 13:36:58.803000000 这些方法也适用于日期列; the (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
相关内容
- 解决Windows 10家庭版安装SQL Server 2014出现.net 3.5失败
- sql-server – 动态SQL Server Pivot(UNPIVOT)列名称为行值
- SqlServer_处理复杂外部连接;
- SQL Server 查询性能优化之走出索引的误区示例
- SqlServer2008r2在查询时将两列合并显示
- SQLSERVER ErrorLog文件
- 是否有可能拥有超过一百万列的SQL表?
- SQLServer2008语句查询
- SQLServer2000编程中出现的异常:ResultSet can not re-rea
- SQL Server SQL order by ID desc/asc加一个排序的字段解决