【发布时间】:2015-03-28 12:25:16
【问题描述】:
我正在尝试从包含日期列的 .xlsx 电子表格中导入数据。在这些列中,日期以 DD-MON-YY 格式显示(例如:20-AUG-12)。
当我运行导入向导时,一切正常,直到我必须精确列/字段映射。我有一个免责声明,说所选格式与表字段定义不匹配(我的字段是日期字段)。插入脚本示例:
INSERT INTO simulation
(simulation_id,
simulation_name,
sim_start_date,
sim_end_date,
status,
last_run_date,
moddat,
modusr,
notification_email)
VALUES (251.0,
'Proposal Test',
To_date('01-DEC-11', 'DD-MON-YY'),
To_date('31-DEC-11', 'DD-MON-YY'),
'C',
To_date('09-AUG-12', 'DD-MON-YY'),
To_date('09-AUG-12', 'DD-MON-YY'),
'Brent Weintz',
'bweintz@carlsonwagonlit.com');
当我尝试运行此查询时,出现以下错误:
ORA-01843: 月份无效 01843. 00000 - “不是一个有效的月份”
如您所见,格式匹配,我不知道问题出在哪里...有什么想法吗?
编辑:我的日期语言参数设置为“法语”。可以改成“AMERICAN”吗?
【问题讨论】:
-
select * from nls_session_parameters where parameter = 'NLS_DATE_LANGUAGE';它有什么作用?也许,数据库的语言不是美式的。 -
表定义是什么样的?
-
@MaheswaranRavisankar,正是我要说的,但我宁愿将其发布为答案。
-
@Traffy,是的,当然您可以更改参数值。已给出两个选项作为答案。阅读docs.oracle.com/database/121/NLSPG/ch3globenv.htm#NLSPG003
标签: sql oracle datetime insert